线程的通信

空扰寡人 提交于 2019-12-04 20:32:50

线程通信

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

线程的通信需要用到 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异同点

 

.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!