多執行緒通訊

2021-06-21 02:08:45 字數 1137 閱讀 7672

/**

* 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.管道通訊 管道流主...