国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python線程專題6:事件

huhud / 1955人閱讀

摘要:上一篇文章線程專題信號量與有邊界的信號量下一篇文章線程專題條件變量事件用于在線程之間通信。一個線程發送事件信號,一個或多個其他線程等待它。阻塞直到內部標志為。最壞的情況是,由于事件信號丟失,整個程序將會掛起。

上一篇文章:Python線程專題5:信號量與有邊界的信號量
下一篇文章:Python線程專題7:條件變量

事件用于在線程之間通信。一個線程發送【事件】信號,一個或多個其他線程等待它。

Event實例管理著一個內部標志,可以使用set()方法將它置為True,或者使用clear()方法將它重置為False。wait()方法將阻塞,直到標志為True。

語法:
e=Event()
創建新的Event實例,并將內部標志設置為False。
常用方法:
e.is_set():只有當內部標志設為True時才返回True

e.set():將內部標志設置為True。等待它變為True的所有線程都講被喚醒。

e.clear():將內部標志重置為False。

e.wait(timeout):阻塞直到內部標志為True。如果調用時內部標志為True,此方法將立即返回。
否則,它將阻塞,直到另一個線程調用set()方法將標志設置為True,或者出現可選的超時時。
注意
盡管Event對象可用于給其他線程發送信號,但不應該使用他們來實現在生產者和消費者的通知,例如下面代碼:
evt=Event()

def producer():
    while True:
        #生產項
        ...
        evt.signal()
def consumer():
    while True:
        #等待一個項
        evt.wait()
        #消費項
        ...
        #清除事件并再次等待
        evt.clear()
應該 盡量避免上面代碼,因為這段代碼不可靠,因為在evt.wait() 與evt.clear()操作之間,生產者可能生產了一個新項。但是,通過清楚事件,在生產者創建一個新項之前,消費者可能看不到這個新項。最好的情況是:程序將經過一段很短的停滯,對項的處理被莫名其妙的推遲。最壞的情況是,由于事件信號丟失,整個程序將會掛起。要解決這類問題,最好使用條件變量。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42390.html

相關文章

  • Python線程專題縱覽篇

    摘要:上一篇文章進程專題完結篇多進程處理的一般建議下一篇文章線程專題多線程使用的必要性進程線程進程能夠完成多任務,比如在一個電腦上可以運行多個軟件。由于占用資源少,也使得多線程程序并發比較高。 上一篇文章:Python進程專題完結篇:多進程處理的一般建議下一篇文章:Python線程專題1:多線程使用的必要性 進程VS線程 進程:能夠完成多任務,比如在一個電腦上可以運行多個軟件。線程:也能夠...

    張紅新 評論0 收藏0
  • Python線程專題7:條件變量

    摘要:上一篇文章線程專題事件下一篇文章線程專題使用鎖的注意事項條件變量時構建在另一個鎖上的同步原語,當需要線程關注特定的狀態變化或事件發生時將使用這個鎖。 上一篇文章:Python線程專題6:事件下一篇文章:Python線程專題8:使用鎖的注意事項 條件變量時構建在另一個鎖上的同步原語,當需要線程關注特定的狀態變化或事件發生時將使用這個鎖。典型的用法是生產者與消費者問題,其中一個線程生產的...

    Genng 評論0 收藏0
  • Python線程專題5:信號量與有邊界的信號量

    摘要:有邊界的信號量語法創建一個新的有邊界信號量。是計數器的初始值,如果忽略,將默認為信號量與有邊界的信號量的區別的工作方式與完全相同,但操作的次數不能超過的操作次數。信號量與互斥鎖的微妙差別信號量可用于發送信號。 上一篇文章:Python線程專題4:Timer對象、Lock對象、Rlock對象下一篇文章:Python線程專題6:事件 信號量與有邊界的信號量 信號量是一個基于計數器的同步原...

    Dionysus_go 評論0 收藏0
  • Python線程專題1:多線程使用的必要性

    摘要:上一篇文章線程專題縱覽篇下一篇文章線程專題多線程共享全局變量在引入多線程之前,我們先來看一個非常簡單的實例。實例單線程實例的帥,遠近聞名第次傳播暫停一秒,不然看不到效果哦結果按照順序依次打印上面是單線程顯示效果,現在我們來用多線程處理一下。 上一篇文章:Python線程專題縱覽篇下一篇文章:Python線程專題2:多線程共享全局變量 在引入多線程之前,我們先來看一個非常簡單的實例。 ...

    Darkgel 評論0 收藏0
  • Python進程專題6:共享數據與同步

    摘要:可以使用標準的索引切片迭代操作訪問它,其中每項操作均鎖進程同步,對于字節字符串,還具有屬性,可以把整個數組當做一個字符串進行訪問。當所編寫的程序必須一次性操作大量的數組項時,如果同時使用這種數據類型和用于同步的單獨大的鎖,性能將極大提升。 上一篇文章:Python進程專題5:進程間通信下一篇文章:Python進程專題7:托管對象 我們現在知道,進程之間彼此是孤立的,唯一通信的方式是隊...

    Yuanf 評論0 收藏0

發表評論

0條評論

huhud

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<