執行緒同步通訊與定時器Timer使用

2021-05-28 01:19:01 字數 1072 閱讀 8599

一、    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 第乙個引數為定...