JUC 第4章线程间通信

第4章 线程间通信

1. 线程间通信

(1)生产者+消费者

(2)通知等待唤醒机制

     1.1  多线程编程模板下

(1)判断

(2)干活

(3)通知

2. synchronized实现

  2.1  程序代码

 

   2.2  换成4个线程

换成4个线程会导致错误,虚假唤醒

 

原因:在java多线程判断时,不能用if,程序出事出在了判断上面,

突然有一天加的线程进到if了,突然中断了交出控制权,

没有进行验证,而是直接走下去了,加了两次,甚至多次

 

  2.3  虚假唤醒解决办法

解决虚假唤醒:查看API,java.lang.Object

中断和虚假唤醒是可能产生的,所以要用loop循环,if只判断一次,while是只要唤醒就要拉回来再判断一次。if换成while

3. java8新版实现

     3.1  对标实现

  • 3.2  Condition

    Condition:查看API,java.util.concurrent

    API例子:

  • 3.3  程序代码

上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)