美文网首页
wait() notify()方法使用实例

wait() notify()方法使用实例

作者: 雨景江水 | 来源:发表于2023-07-06 22:32 被阅读0次

    https://blog.csdn.net/lingzhm/article/details/44940823

    原理:https://www.cnblogs.com/tiancai/p/8855125.html

    一.

    1. 为什么wait(),notify()必须在同步方法/代码块中调用?

    x详解:https://blog.csdn.net/weixin_36380516/article/details/121710146

    在当前线程里调用锁对象的wait方法,当前线程就释放了Monitor,当前线程进入waitSet

    当该对象调用了notify方法或者notifyAll方法后,wait-set中的线程就会被唤醒,然后在wait-set队列中被唤醒的线程和entry-set队列中的线程一起通过CPU调度来竞争对象的Monitor,最终只有一个线程能获取对象的Monitor。

    1. notify()方法 是随机唤醒一个线程的嘛?
      不是,"先进先出”的顺序唤醒:https://blog.csdn.net/thlzjfefe/article/details/109961385

    notify()或者notifyAll()调用时并不会真正释放对象锁, 必须等到synchronized方法或者语法块执行完才真正释放锁。调用notify()或者notifyAll()只是唤醒wait-set里面的线程,当当前线程释放锁后,唤醒的线程 和 entry-set 里面的线程一起竞争锁:
    https://blog.csdn.net/AttleeTao/article/details/110133661

    1. wait方法是可以给他传一个时间参数进去的,是一种自动唤醒机制.在指定时间内,如果没有其他线程唤醒自己,则主动唤醒自己。如果传0或者不传,则表示永久等待

    https://blog.csdn.net/qq_37855749/article/details/117073990

    相关文章

      网友评论

          本文标题:wait() notify()方法使用实例

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