《java多线程编程实战指南 核心篇》读书笔记三
1. 锁的思路: 将多个线程对共享数据的并发访问转换为串行访问,即一个共享数据一次只能被一个线程访问,该线程访问结束后其他线程才能对其进行访问。锁(lock)就是利用这种思路以保障线程安全的线程同步机制。
2. 线程同步机制是一套用于协调线程间的数据访问(Data access)及活动(Activity)的机制,该机制用于保障线程安全以及实现这些线程的共同目标。
java平台中锁的调度策略也包括公平策略和非公平策略,相应的锁就被称为公平锁和非公平锁。内部锁属于非公平锁,而显示锁既支持公平锁又支持非公平锁。
3. 锁的作用: 锁能够保护共享数据以实现线程安全,其作用包括保障原子性,保障可见性和保障有序性。
4. 可重入性(Reentrancy):一个线程在其持有一个锁的时候能否再次(或者多次)申请该锁。如果一个线程有一个锁的时候还能够继续成功申请该锁,那么我们就称该锁是可重入的(reentrant),否则我们就称锁为非可重入的(Non-reentrant)。