说道java多线程就不能不提synchronize wait notifyAll
synchronize是获取对象的锁定,当一个线程获取这个锁定后 其他线程只能等待
wait()方法是让线程休息,通常是线程要等待某个资源就绪后才能向下执行,这时调用wait()告诉线程先等着吧
值得一提的是 调用wait方法时必须获得锁
调用wait方法后,线程会被放入一个休息室,我们把它叫做wait set
示例
notifyAll()方法是通知线程,告诉线程等待的资源已经就绪了,赶紧去抢吧
notifyAll会通知所有在wait set中的线程,这些线程会去抢就绪的资源,谁能抢到就靠运气了
synchronize是获取对象的锁定,当一个线程获取这个锁定后 其他线程只能等待
wait()方法是让线程休息,通常是线程要等待某个资源就绪后才能向下执行,这时调用wait()告诉线程先等着吧
值得一提的是 调用wait方法时必须获得锁
调用wait方法后,线程会被放入一个休息室,我们把它叫做wait set
示例
synchronize(this){
....
this.wait();
....
}
notifyAll()方法是通知线程,告诉线程等待的资源已经就绪了,赶紧去抢吧
notifyAll会通知所有在wait set中的线程,这些线程会去抢就绪的资源,谁能抢到就靠运气了