java问答:终极父类(六)——等待/唤醒和接口

等待和唤醒

Qwait()notify()  notifyAll() 是用来干什么的?

Await()notify()  notifyAll() 可以让线程协调完成一项任务。例如,一个线程生产,另一线程消费。生产线程不能在前一产品被消费之前运行,而应该等待前一个被生产出来的产品被消费之后才被唤醒,进行生产。同理,消费线程也不能在生产线程之前运行,即不能消费不存在的产品,所以应该等待生产线程执行一个之后才执行。利用这些方法,就可以实现这些线程之间的协调。从本质上说,一个线程等待某种状态(例如一个产品被生产),另一个线程正在执行,知道产生了某种状态(例如生产了一个产品)。

Continue reading…

 

平庸之恶

麻风病是一种慢性传染病。通过含有麻风杆菌的皮肤或黏膜损害与有破损的健康人皮肤或黏膜的接触所传染,是传统认为麻风传播的重要方式。其次是间接传染,健康者与传染性麻风患者经过一定的传播媒介而受到传染。例如接触传染患者用过的衣物、被褥、手巾、食具等。间接接触传染的可能性很小。

Continue reading…