首页 > 编程语言 > 详细

线程的通信

时间:2019-11-18 15:21:22      阅读:83      评论:0      收藏:0      [点我收藏+]

线程通信

线程的通信就是一个数据可以让两个线程轮流打印 你打印一下 我打印一下 

线程的通信需要用到 wait() notify() 和 notifyAll()方法来使线程进行通信

 

通信方法:

wait() : 一旦执行此方法 当前线程就进入阻塞状态,并释放同步监视器(锁)

notify(): 一旦执行此方法,就会被唤醒的wait线程,如果有多个线程被wait就会唤醒优先级高的

notifuAll(): 一旦执行此方法释放所有被wait()方法阻塞的线程

说明:

说明:
   1: wait() notify() notifyAll() 必须使用在同步代码块或者同步范方法中
   2: 这三个方法必须都是同一个同步监视器调用

 

 

 

面试题:

 面试题: sleep() 和wait()异同

 

技术分享图片
  

   相同:一旦执行都会使线程进入阻塞状态

   不同点:
            1: 两个方法的声明位置不同 Thread中声明sleep() Object中声明wait()
            2: 调用的范围: sleep随时可以用, wait()必须使用在同步代码或者同步方法中
            3: 是否释放同步监视器: 如果两个方法都是用在同步代码块和同步方法中 sleep()不会释放锁,wait()会释放锁
sleep和wait异同点

 

.

线程的通信

原文:https://www.cnblogs.com/zhaoyunlong/p/11881890.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!