Fork me on GitHub
摘要: JDK 1.5 以后, 将同步和锁封装成了对象, 并将操作锁的隐式方法定义到了该对象中, 将隐式动作变成了显示动作. Lock 接口 1. Lock 接口, 位于 java.util.concurrent.locks 包中, 使用该接口需要导包. 2. Lock 接口的出现替代了同步代码块或者同步函 阅读全文
posted @ 2017-08-31 15:36 小a的软件思考 阅读(1261) 评论(0) 推荐(0) 编辑
摘要: 出现错误的两种情况: 1. 线程安全问题(虚假唤醒): 线程1 生产的烤鸭被线程3 和线程5 两个线程同时消费 if 只能判断标记一次, 会导致不该运行的线程运行了, 出现数据错误的情况 while 可以多次判断标记, 解决了线程获取执行权后, 是否要运行的问题! 2. 死锁 notify() 一次 阅读全文
posted @ 2017-08-31 10:57 小a的软件思考 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 多线程间通信: 多个线程在处理同一个资源, 但是任务却不同. 等待/唤醒机制 涉及的方法 wait(): 让线程处于冻结状态, 被 wait() 的线程会被存储到线程池中 notify(): 唤醒线程池中的任意一个线程 notifyAll(): 唤醒线程池中所有的线程 这些方法必须定义在同步中, 因 阅读全文
posted @ 2017-08-31 09:54 小a的软件思考 阅读(238) 评论(0) 推荐(0) 编辑