1.什么是共享变量
共享变量是指可以由多个线程同时访问。
2.线程安全性
当多个线程访问都一个类时,该类始终都能表现出正确的行为,那么就称这个类是线程安全的。
3.无状态对象
不包含任何域的对象称为无状态对象,无状态对象一定是线程安全的。
4.竞态条件
当某个计算的正确性取决多个线程的交替执行的时序时,就会发生竞态条件。最常见的竞态条件是先检查后执行。
5.复合操作
先检查后执行的操作统一称为复合操作,例如 读取--修改--写入,先检查后执行等。
6.加锁机制
要保持状态的一致性,就必须在一次原子操作中更新所有的状态变量。
7.内置锁synchronize
8.锁的重入性
如果锁不具备重入性,则递归调用的锁方法将会发生死锁。