Java线程通信

1. 线程通信概念

 一个线程完成了自己的任务时,要通知另外一个线程去完成另外一个任务。

2. 线程通信方法

  • wait(): 等待

    如果线程执行了wait方法,那么该线程会进入到以锁对象为标识符的线程池中等待,等待状态下的线程必须要被其他线程调用notify方法才能唤醒。

  • notify(): 唤醒

    如果线程执行了notify方法,那么就会唤醒以锁对象为标识符的线程池中等待线程中的一个。

  • notifyAll() :唤醒所有

    唤醒以锁对象为标识符的线程池中的所有等待线程。

3. wait与notify方法注意事项

  • wait方法与notify方法是属于Object对象的。

    说明:
    因为锁对象可以使任意的对象,所以这个两个方法定义在Object对象中。

  • wait方法与notify方法必须要在同步代码块或者是同步函数中才能使用。

    说明:
    因为这两个方法一定要由锁对象进行调用,而锁对象是在同步代码块或同步函数中使用的,所以这两个方法必须在同步代码块货同步函数中使用。

  • wait方法与notify方法必需要由同一个锁对象调用。

    说明:
    因为这两个方法都是要到以锁对象为标识符的线程池中进行操作的,不同的的锁对象线程池不一样,所以必须是有同一个锁对象进行调用,不然就无法通知另外的线程唤醒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值