摘要: 管程法_解决生产者消费者问题 生产者:负责生产数据的模块(可能是方法,对象,线程,进程); 消费者:负责处理数据的模块(可能是方法,对象,线程,进程); 缓冲区:消费者不能直接使用生产者的数据,它们之间有个“缓冲区”生产者将生产好的数据放入缓冲区中,消费者从缓冲区拿出数据 代码: package m 阅读全文
posted @ 2021-07-22 23:12 CH0701 阅读(185) 评论(0) 推荐(0)
摘要: 线程协作_生产者消费者问题 线程通信 应用场景:生产者消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费, 阅读全文
posted @ 2021-07-22 22:36 CH0701 阅读(39) 评论(0) 推荐(0)
摘要: Lock(锁) 从JDK 5.0开始,Java提供了更加强大的线程同步机制————通过显示定义同步锁对象来实现同步。同步锁使用Lock对象充当。 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程 阅读全文
posted @ 2021-07-22 22:19 CH0701 阅读(111) 评论(0) 推荐(0)
摘要: 死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题 死锁避免的方法:破坏大于等于一个,产生死锁的必要条件 产生死锁的四个必要条件: 互斥条件: 阅读全文
posted @ 2021-07-22 21:56 CH0701 阅读(100) 评论(0) 推荐(0)