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

在python里協(xié)程使用同步鎖Lock的實(shí)例

 更新時(shí)間:2019年02月19日 10:21:15   作者:caimouse  
今天小編就為大家分享一篇在python里協(xié)程使用同步鎖Lock的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

盡管asyncio庫(kù)是使用單線(xiàn)程來(lái)實(shí)現(xiàn)協(xié)程的,但是它還是并發(fā)的,亂序執(zhí)行的。可以說(shuō)是單線(xiàn)程的調(diào)度系統(tǒng),并且由于執(zhí)行時(shí)有延時(shí)或者I/O中斷等因素,每個(gè)協(xié)程如果同步時(shí),還是得使用一些同步對(duì)象來(lái)實(shí)現(xiàn)。

比如asyncio就定義了一個(gè)鎖對(duì)象Lock,它一次只允許一個(gè)協(xié)程來(lái)訪(fǎng)問(wèn)共享的資源,如果多協(xié)程想訪(fǎng)問(wèn)就會(huì)阻塞起來(lái),也就是說(shuō)如果一個(gè)協(xié)程沒(méi)有釋放這個(gè)鎖,別的協(xié)程是沒(méi)有辦法訪(fǎng)問(wèn)共享的資源。

例子:

import asyncio
import functools
 
 
def unlock(lock):
  print('callback releasing lock')
  lock.release()
 
 
async def coro1(lock):
  print('coro1 waiting for the lock')
  with await lock:
    print('coro1 acquired lock')
  print('coro1 released lock')
 
 
async def coro2(lock):
  print('coro2 waiting for the lock')
  await lock
  try:
    print('coro2 acquired lock')
  finally:
    print('coro2 released lock')
    lock.release()
 
 
async def main(loop):
  # Create and acquire a shared lock.
  lock = asyncio.Lock()
  print('acquiring the lock before starting coroutines')
  await lock.acquire()
  print('lock acquired: {}'.format(lock.locked()))
 
  # Schedule a callback to unlock the lock.
  loop.call_later(0.1, functools.partial(unlock, lock))
 
  # Run the coroutines that want to use the lock.
  print('waiting for coroutines')
  await asyncio.wait([coro1(lock), coro2(lock)]),
 
 
event_loop = asyncio.get_event_loop()
try:
  event_loop.run_until_complete(main(event_loop))
finally:
  event_loop.close()

輸出結(jié)果如下:

acquiring the lock before starting coroutines
lock acquired: True
waiting for coroutines
coro1 waiting for the lock
coro2 waiting for the lock
callback releasing lock
coro1 acquired lock
coro1 released lock
coro2 acquired lock
coro2 released lock

以上這篇在python里協(xié)程使用同步鎖Lock的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • wxpython實(shí)現(xiàn)按鈕切換界面的方法

    wxpython實(shí)現(xiàn)按鈕切換界面的方法

    這篇文章主要為大家詳細(xì)介紹了wxpython實(shí)現(xiàn)按鈕切換界面的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python Dict找出value大于某值或key大于某值的所有項(xiàng)方式

    Python Dict找出value大于某值或key大于某值的所有項(xiàng)方式

    這篇文章主要介紹了Python Dict找出value大于某值或key大于某值的所有項(xiàng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 一篇超級(jí)全面的Python功能圖譜(推薦)

    一篇超級(jí)全面的Python功能圖譜(推薦)

    Python作為一種廣受歡迎的高級(jí)編程語(yǔ)言,不僅在基本語(yǔ)法上易于學(xué)習(xí),還擁有強(qiáng)大的標(biāo)準(zhǔn)庫(kù)和活躍的開(kāi)發(fā)社區(qū),本文詳細(xì)介紹了Python從基礎(chǔ)語(yǔ)法到高級(jí)應(yīng)用的全面功能,并通過(guò)實(shí)際案例和代碼示例展示了其在科學(xué)計(jì)算、Web開(kāi)發(fā)、機(jī)器學(xué)習(xí)等多個(gè)領(lǐng)域的應(yīng)用,需要的朋友可以參考下
    2024-09-09
  • 教你用 Python 發(fā)送告警通知到微信的操作過(guò)程

    教你用 Python 發(fā)送告警通知到微信的操作過(guò)程

    大家都知道常見(jiàn)的告警方式有:郵件,電話(huà),短信,微信,今天通過(guò)本文給大家介紹下Python 發(fā)送告警通知到微信的操作過(guò)程,感興趣的朋友一起看看吧
    2022-01-01
  • Python?Generator生成器函數(shù)基本概念及高級(jí)用途技巧示例

    Python?Generator生成器函數(shù)基本概念及高級(jí)用途技巧示例

    這篇文章主要為大家介紹了Python?Generator生成器函數(shù)基本概念及高級(jí)用途技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Python可以用來(lái)做什么

    Python可以用來(lái)做什么

    在本篇文章里小編給大家整理的是一篇關(guān)于解惑Python可以用來(lái)做什么的基礎(chǔ)文章,有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • 基于asyncio 異步協(xié)程框架實(shí)現(xiàn)收集B站直播彈幕

    基于asyncio 異步協(xié)程框架實(shí)現(xiàn)收集B站直播彈幕

    本文給大家分享的是基于asyncio 異步協(xié)程框架實(shí)現(xiàn)收集B站直播彈幕收集系統(tǒng)的簡(jiǎn)單設(shè)計(jì),并附上源碼,有需要的小伙伴可以參考下
    2016-09-09
  • Python的gevent框架的入門(mén)教程

    Python的gevent框架的入門(mén)教程

    這篇文章主要介紹了Python的gevent框架的入門(mén)教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • pycharm激活碼快速激活及使用步驟

    pycharm激活碼快速激活及使用步驟

    這篇文章主要介紹了pycharm激活碼快速激活及使用步驟,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Pytorch distributed 多卡并行載入模型操作

    Pytorch distributed 多卡并行載入模型操作

    這篇文章主要介紹了Pytorch distributed 多卡并行載入模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評(píng)論

南部县| 婺源县| 乌鲁木齐县| 通城县| 隆子县| 大埔区| 平潭县| 当雄县| 阿拉善右旗| 婺源县| 景德镇市| 西丰县| 龙南县| 财经| 株洲县| 本溪市| 永康市| 肇州县| 河津市| 宜章县| 浏阳市| 利津县| 江西省| 诏安县| 仪征市| 平武县| 施甸县| 区。| 壶关县| 共和县| 额尔古纳市| 黄山市| 胶南市| 和田县| 黎川县| 裕民县| 尉氏县| 米易县| 寿阳县| 屏南县| 合山市|