Java多线程中的wait与notify

Posted 牧羊人的世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程中的wait与notify相关的知识,希望对你有一定的参考价值。

(1)wait:

  1. wait 是 object 类的方法, sleep 是 thread 类的方法.

  2. 当前的正在我这个对象访问的线程 wait.

  3. 当前的这个线程, 锁定在当前对象的这个线程停止住.

  4. 只有锁定后, 才能有wait; 如果不是 synchronized, 直接调用 wait, 立马出错.

(2)锁的问题:

  1. 原来不是拥有这个对象的锁吗? 一旦 wait ,立马就死了, 这个对象的锁就不再归我所有, 只有醒过来的时候, 我才会再找这把锁, 把它找回来.

(3)wait 与 sleep 的区别:

  1. wait 的时候, 锁就不再给我所有.

  2. sleep 的时候, 睡着了也抱着那把锁, 它比较贪婪.

 

以上是关于Java多线程中的wait与notify的主要内容,如果未能解决你的问题,请参考以下文章

java里多线程的wait问题

Java多线程——wait方法和notify方法的详解

sleep()与wait()的差别(java笔记-多线程)

多线程中的wait与sleep到底谁释放了锁

java多线程进阶线程通信

Java多线程系列---“基础篇”05之 线程等待与唤醒