/**
* 1.
* wait()
* notify()
* notifyall()
* 都使用在同步中,因為要對持有監視器(鎖)的執行緒操作,所以都要使用在同步中,有同步才會有鎖的存在
* * 2.操作執行緒的方法為什麼都定義在object中呢?
* 因為這些方法在操作這些同步中的執行緒時,都必須要標識他們所操作的執行緒持有的鎖
* 持有同一鎖被等待的執行緒,可以被同乙個鎖上的notify喚醒;
* 不可以被不同鎖的執行緒喚醒。
* * 3.等待和喚醒必須是同乙個鎖(監視器)。
* *4. 鎖可以是任意物件。
* *5. 可以被任意物件呼叫的方法定義在object類中。
* */
//資源類
public class resource
public string getname()
public void setname(string name)
public string get***()
public void set***(string ***) }
//輸入執行緒
public class input implements runnable
@override
public void run() catch (interruptedexception e)
}if (num == 0) else
num = (num + 1) % 2;
res.flag=true;
res.notify(); //喚醒執行緒}}
}}//輸出執行緒
public class output implements runnable
@override
public void run() catch (interruptedexception e)
}system.out.println(res.getname() + "___" + res.get***());
res.flag=false;
res.notify();}}
}}//測試執行緒
public class test
}
執行緒通訊,多執行緒
多執行緒 thread handler thread處理一些複雜的業務邏輯 耗時的事情 handler在主線程中接收訊息的乙個物件 mhandler.sendmessage msg 傳送乙個訊息物件 mhandler.sendemptymessage what 傳送空訊息,只有what沒有obj m...
多執行緒 執行緒通訊
總結 今天小鹹兒來講解乙個好玩的事,那就是執行緒之間該如何通訊,執行緒通訊之後又會出現什麼問題?先來一張導圖來看看執行緒通訊的分布?疑問 如果想要執行緒按照使用者自定義的順序執行的話,那該如何操作呢?思考 如果能夠讓執行緒等待先執行的執行緒執行完,再執行不就能達到效果了嗎!果然出現問題之後,就會有對...
多執行緒 執行緒通訊
1.使用wait notify方法實現執行緒之間的通訊 1 有其他執行緒呼叫同乙個物件的notify或者notifyall方法 呼叫notify notifyall方法之前 2 被喚醒之後重新獲得物件的鎖 呼叫notify notifyall方法之後 編寫測試 如下 執行結果 2.管道通訊 管道流主...