同步与互斥
- 什么是同步?
- 有序性
- 完整性(原子性)
- 什么是互斥?
- 什么是临界区?
可以限制线程并发访问共享资源,达到同步与互斥目的的程序片段(阻隔线程,排斥线程)。
同步代码块
- 格式示例
- 使用说明
同步方法
- 使用格式
- 使用解释
示例代码
释放同步监视器
示例代码(A)
示例代码(B)
同步代码块与同步方法的区别
- 区别
死锁问题
- 发生原因
线程间通信
-
内容描述
线程间的通信并不是指一个线程发一个消息给另一个线程,而是指在多线程中的一种等待与唤醒机制。 -
等待与唤醒
-
相关 API
示例代码
注:如果老李没被唤醒会处于阻塞态(等待池),而被唤醒后如果没拿到锁依然处于阻塞态,只不过不是在等待池了,而是在锁池里等待拿锁(如下图所示)
-
结合生命周期
锁接口
可重入锁
- synchronized 是否可重入
使用示例
- 可重入特性
- 注意事项
tryLock 方法
Lock 锁条件
- 获得锁条件
- 进入等待
- 唤醒线程
参考代码
阻塞队列