Java多线程之线程的协作

等待队列

每个实例都有一个等待,他是在实例的wait方法执行后停止操作的队列,除非发现以下情况,线程才会退出等待队列

1.有其他线程的notify方法来唤醒线程

2.有其他线程的notifyAll方法来唤醒线程

3.有其他方法的interrupt方法来唤醒线程

4.wait方法超时

wait方法----将线程放入等待队列

如果执行了obj.wait();线程会展厅运行。并进入到obj的等待队列中。这叫做线程正在obj上wait。

wait();        (1)

this.wait()       (2)

如果执行wait方法,线程必须有锁。流程如下

线程A syncharonized方法 wait();

线程B syncharonized方法

1.获取线程锁的线程A执行wait方法,

2.线程A进入等待队列,释放锁

3.线程B获取锁

原文地址:https://www.cnblogs.com/gegelaopiaoke/p/11115208.html