摘要: class MyResource { private volatile boolean FLAG = true; //默认开启,进行生产+消费 private AtomicInteger atomicInteger = new AtomicInteger(); BlockingQueue<Strin 阅读全文
posted @ 2020-01-05 23:18 从精通到陌生 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 多线程之间按顺序调用,实现A →B→C三个线程启动,要求如下: AA 打印2次,BB 打印3次,CC打印4次,按顺序连续打印2轮。 class ShareResource { private int number = 1; private Lock lock = new ReentrantLock( 阅读全文
posted @ 2020-01-05 21:55 从精通到陌生 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 1.原始构成 synchronized是关键字属于jvm层面,monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象,只有在同步块或者方法中才能调wait/notify等方法) monitorexit lock是具体类(java.ut 阅读全文
posted @ 2020-01-05 20:09 从精通到陌生 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒 为什么需要BlockingQueue 好处是我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为这一切BlockingQueue都给你一手操办了,在concurrent包发布以前,在多线程环 阅读全文
posted @ 2020-01-05 13:08 从精通到陌生 阅读(583) 评论(0) 推荐(0) 编辑