Object.wait是指线程等待当前对象上,如果一个线程调用了wait方法,它不会往下走,它将会等待。在使用wait需要注意的地方是必须获得Object对象监视器(monitor),要保证wait 方法在synchronized里面。Wait方法会导致当前这个线程释放监视器,为什么要释放呢?如果不释放,其他线程就无法获取这个Object所有权。

线程——Wait 、notify、notifyAll

Object.notify通知等待这个对象上的线程,同样notify方法要保证在synchronized里面,也必须获得Object对象上的监视器(monitor)

 

接下来写了一个类,第一次运行我发现如下结果,然后我有运行了第二次,出现了另一种结果。

导致第一种的结果,很显然是t2先执行了,然后才执行t1,而t1一直处于等待状态。

而第二种结果,t1先于t2。所以我们在使用wait和notify的时候要注意下,以防notify在wait后执行。

线程——Wait 、notify、notifyAll


线程——Wait 、notify、notifyAll

Notify 和notifyAll的区别:

线程——Wait 、notify、notifyAll

相关文章:

  • 2021-10-23
  • 2022-01-29
  • 2021-07-07
  • 2022-02-13
  • 2022-12-23
  • 2021-10-07
  • 2022-12-23
猜你喜欢
  • 2022-01-16
  • 2022-01-08
  • 2021-07-28
  • 2022-01-24
  • 2022-12-23
  • 2021-05-11
  • 2021-05-14
相关资源
相似解决方案