美文网首页
wait()与notify()

wait()与notify()

作者: 机器不能学习 | 来源:发表于2018-09-17 16:30 被阅读0次

    wait()与notify()还有notifyAll()方法都是object对象的方法,他们控制者对象线程的状态变化。
    所以他们只能用在关键字syn里面。

    使用他们的时候的注意点。
    syn可以用当前线程this作为锁,也可以用对象锁(对象可以是Object对象也可以是list等等)

    1.被wait()的对象进入线程池,会释放掉锁
    2.必须是在其他线程中相同对象调用notify()才可以让处于wait的对象重新进入队列,并在本对象的syn执行完,处于队列的对象才能再次竞争锁
    3.线程开启的方法只有用Start(),如果你直接调用线程类的方法是不可行的,线程并没有开启
    4.在3的基础上,调用notify和wait必须在同一个线程类中调用。即不可以新建一个线程类(因为就不是一个线程了)或者直接调用该方法。需要的是把该线程类传入另外一个线程中。
    5.在wait恢复锁以后,可以继续执行wait之后的代码

    相关文章

      网友评论

          本文标题:wait()与notify()

          本文链接:https://www.haomeiwen.com/subject/sqkrnftx.html