線程間通信:其實就是多個線程在操作同一個資源,但是操作的動作不同。
wait:
notify ( )
notifyAll ( )
都使用在同步中,因為要對持有監視器(鎖)的線程操作。
所以要使用在同步中,因為只有同步才具有鎖。
為什么這些操作線程的方法要定義在Object類中呢?
因為這些方法在操作同步中的線程時,都必須要標識它們所操作線程持有的鎖,只有同一個鎖上的被等待線程,可以被同一個鎖上的notify喚醒。不可以對不同鎖中的線程進行喚醒。
也就是:等待和喚醒必須是同一個鎖。
而鎖可以是任意對象,可以被任意對象調用的方法定義在Object類中。