最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python線程條件變量Condition原理解析

 更新時間:2020年01月20日 10:10:28   作者:虛生  
這篇文章主要介紹了Python線程條件變量Condition原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下

這篇文章主要介紹了Python線程條件變量Condition原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下

Condition 對象就是條件變量,它總是與某種鎖相關(guān)聯(lián),可以是外部傳入的鎖或是系統(tǒng)默認創(chuàng)建的鎖。當幾個條件變量共享一個鎖時,你就應(yīng)該自己傳入一個鎖。這個鎖不需要你操心,Condition 類會管理它。

acquire() 和 release() 可以操控這個相關(guān)聯(lián)的鎖。其他的方法都必須在這個鎖被鎖上的情況下使用。wait() 會釋放這個鎖,阻塞本線程直到其他線程通過 notify() 或 notify_all() 來喚醒它。一旦被喚醒,這個鎖又被 wait() 鎖上。

經(jīng)典的 consumer/producer 問題的代碼示例為:

import threading
import time
import logging

logging.basicConfig(level=logging.DEBUG,
          format='(%(threadName)-9s) %(message)s',)

def consumer(cv):
  logging.debug('Consumer thread started ...')
  with cv:
    logging.debug('Consumer waiting ...')
    cv.acquire()
    cv.wait()
    logging.debug('Consumer consumed the resource')
    cv.release()

def producer(cv):
  logging.debug('Producer thread started ...')
  with cv:
    cv.acquire()
    logging.debug('Making resource available')
    logging.debug('Notifying to all consumers')
    cv.notify()
    cv.release()

if __name__ == '__main__':
  condition = threading.Condition()
  cs1 = threading.Thread(name='consumer1', target=consumer, args=(condition,))
  #cs2 = threading.Thread(name='consumer2', target=consumer, args=(condition,state))
  pd = threading.Thread(name='producer', target=producer, args=(condition,))

  cs1.start()
  time.sleep(2)
  #cs2.start()
  #time.sleep(2)
  pd.start()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python特征降維知識點總結(jié)

    Python特征降維知識點總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于Python特征降維知識點總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習參考下。
    2021-08-08
  • 使用python?scrapy爬取天氣并導(dǎo)出csv文件

    使用python?scrapy爬取天氣并導(dǎo)出csv文件

    由于工作需要,將爬蟲的文件要保存為csv,以前只是保存為json,下面這篇文章主要給大家介紹了關(guān)于如何使用python?scrapy爬取天氣并導(dǎo)出csv文件的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python模塊的定義,模塊的導(dǎo)入,__name__用法實例分析

    Python模塊的定義,模塊的導(dǎo)入,__name__用法實例分析

    這篇文章主要介紹了Python模塊的定義,模塊的導(dǎo)入,__name__用法,結(jié)合實例形式分析了Python的概念、功能、導(dǎo)入及__name__相關(guān)使用技巧,需要的朋友可以參考下
    2020-01-01
  • 詳解pandas DataFrame的查詢方法(loc,iloc,at,iat,ix的用法和區(qū)別)

    詳解pandas DataFrame的查詢方法(loc,iloc,at,iat,ix的用法和區(qū)別)

    這篇文章主要介紹了詳解pandas DataFrame的查詢方法(loc,iloc,at,iat,ix的用法和區(qū)別),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-08-08
  • 詳解Python中pandas的安裝操作說明(傻瓜版)

    詳解Python中pandas的安裝操作說明(傻瓜版)

    這篇文章主要介紹了Python中pandas的安裝操作說明,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-04-04
  • Python Pygame實戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)

    Python Pygame實戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)

    《憤怒的小鳥》其實活得還不錯,盡管我們一直在嘲笑它的IP帝國夢做得太大。但要知道,把休閑益智游戲的生意做到這個份上的,恐怕也就獨此一家了。本文將利用Pygame實現(xiàn)這一游戲,需要的可以參考一下
    2022-04-04
  • Python tkinter三種布局實例詳解

    Python tkinter三種布局實例詳解

    這篇文章主要介紹了Python tkinter三種布局實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-01-01
  • python加速器numba使用詳解

    python加速器numba使用詳解

    本文主要介紹了python加速器numba使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-02-02
  • centos+nginx+uwsgi部署django項目上線

    centos+nginx+uwsgi部署django項目上線

    本文主要介紹了centos+nginx+uwsgi部署django項目上線,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-07-07
  • Python使用正則表達式實現(xiàn)文本替換的方法

    Python使用正則表達式實現(xiàn)文本替換的方法

    這篇文章主要介紹了Python使用正則表達式實現(xiàn)文本替換的方法,結(jié)合實例形式分析了Python使用正則表達式實現(xiàn)文本替換的具體操作步驟與相關(guān)使用注意事項,需要的朋友可以參考下
    2017-04-04

最新評論

大埔县| 莒南县| 武鸣县| 深圳市| 龙南县| 腾冲县| 鄂托克前旗| 南汇区| 海南省| 芒康县| 北辰区| 孝义市| 虹口区| 长垣县| 吴桥县| 亳州市| 驻马店市| 天全县| 博野县| 平阴县| 奈曼旗| 衡东县| 扬中市| 合江县| 萨迦县| 遂宁市| 桂平市| 岳西县| 扎兰屯市| 西安市| 崇州市| 北流市| 临西县| 荃湾区| 聂荣县| 上杭县| 建湖县| 中阳县| 丹棱县| 循化| 安龙县|