摘要:
通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程 displayThread 想要执行显示图片的任务,必须等待下载线程 downloadThread 将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知 displayThread “图片准备完毕,可以显示了”,这时,displayThread 继续执行。以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如:synchronize.. 阅读全文