一、 wait()方法。 是用臨界資源物件呼叫他,功能:使當前執行緒阻塞,同時釋放對臨界資源加的互斥鎖。
notify()方法 用同乙個臨界資源將此執行緒進入到就緒狀態
notifyall()方法 還是用同以哥臨界資源呼叫,將所有等待的執行緒都喚醒
二、 消費者和生產者
a) 出現問題
i. 執行緒b寫一次,執行緒a讀一次
iii. 在某個時候執行緒a執行速度比較快,它讀完一次資料之後,執行緒b還沒來得及寫,執行緒a又來讀第二次。結果執行緒a讀不到資料,導致執行出錯。
b) 執行緒b正在寫資料時,執行緒a也來讀取資料,這時可能執行緒b還沒將資料寫完,執行緒a將資料讀走,導致程式出錯。
c) 解決方法
i. 一種是採用某種機制保持生產者和消費者之間的同步
ii. 一種是在生產者和消費者之間建立乙個管道
d) 示例**:
public synchronized void pus(char ch)catch(interruptedexceptionex)cathch(interruptedexceotuin e){
e.printstacktrace();
this.notify();
index--;
system.out.println(「custom:」+data[index]);
returndata[index];
三、 定時器 timer和timertask
a) timer類實現的是累死鬧鐘的功能,也就是定時或者每隔一定時間間隔觸發一次執行緒。
b) timertask類是乙個抽象類,該類實現了runnable介面,具備多執行緒的能力。
c) 通過繼承timertask類建立子類,使該子類獲得多執行緒的能力,將需要多執行緒執行的**書寫在run方法的內部。
d) 特殊方法schedule(task,毫秒); 後引數可為毫秒或者data物件
schedule(task,0,1000) 每過1秒馬上執行任務task.
Python 執行緒定時器Timer
匯入執行緒模組 import threading timer threading.timer interval,function,args none,kwargs none 引數介紹 interval 定時器間隔,間隔多少秒之後啟動定時器任務 單位 秒 function 執行緒函式 args 執行緒...
Timer定時器開發
timer定時器開發 定時器的作用是不佔執行緒的等待乙個確定時間,同樣通過callback來通知定時器到期。參考 定時器的建立 同樣是在wftaskfactory類裡的方法 using timer callback t std function class wftaskfactory static ...
Timer定時器開發
timer定時器開發 定時器的作用是不佔執行緒的等待乙個確定時間,同樣通過callback來通知定時器到期。參考 定時器的建立 同樣是在wftaskfactory類裡的方法 using timer callback t std function class wftaskfactory 第乙個引數為定...