欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python協(xié)程之動態(tài)添加任務的方法

 更新時間:2019年02月19日 14:16:30   作者:夢醒人醉  
今天小編就為大家分享一篇python協(xié)程之動態(tài)添加任務的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

python協(xié)程只能運行在事件循環(huán)中,但是一旦事件循環(huán)運行,又會阻塞當前任務。所以只能在當前進程中再開一個線程,這個線程的主要任務是運行事件循環(huán),就是event_loop,因為他是一個無限循環(huán),會阻塞當前線程。

放一個自己寫的demo,注釋寫的很詳細。

另外還有一點需要注意,一個事件循環(huán)中不能運行另外一個事件循環(huán)。

運行結果:

python協(xié)程之動態(tài)添加任務

import asyncio
from threading import Thread
 
 
async def production_task():
  i = 0
  while True:
    # 將consumption這個協(xié)程每秒注冊一個到運行在線程中的循環(huán),thread_loop每秒會獲得一個一直打印i的無限循環(huán)任務
    asyncio.run_coroutine_threadsafe(consumption(i),
                     thread_loop) # 注意:run_coroutine_threadsafe 這個方法只能用在運行在線程中的循環(huán)事件使用
    await asyncio.sleep(1) # 必須加await
    i += 1
 
 
async def consumption(i):
  while True:
    print("我是第{}任務".format(i))
    await asyncio.sleep(1)
 
 
def start_loop(loop):
  # 運行事件循環(huán), loop以參數(shù)的形式傳遞進來運行
  asyncio.set_event_loop(loop)
  loop.run_forever()
 
 
thread_loop = asyncio.new_event_loop() # 獲取一個事件循環(huán)
run_loop_thread = Thread(target=start_loop, args=(thread_loop,)) # 將次事件循環(huán)運行在一個線程中,防止阻塞當前主線程
run_loop_thread.start() # 運行線程,同時協(xié)程事件循環(huán)也會運行
 
advocate_loop = asyncio.get_event_loop() # 將生產(chǎn)任務的協(xié)程注冊到這個循環(huán)中
advocate_loop.run_until_complete(production_task()) # 運行次循環(huán)

以上這篇python協(xié)程之動態(tài)添加任務的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python?解決?pip?時報錯?no?suchoption:?--bulid-dir?的解決辦法(最新推薦)

    python?解決?pip?時報錯?no?suchoption:?--bulid-dir?的解決辦法(最新

    在使用PyCharm虛擬環(huán)境pip時,有時會遇到錯誤提示“no?such?option:?--build-dir”,這可能是由于pip版本不兼容或其他原因導致的,本文將詳細講解如何解決這個問題,感興趣的朋友跟隨小編一起看看吧
    2023-05-05
  • python數(shù)據(jù)結構鏈表之單向鏈表(實例講解)

    python數(shù)據(jù)結構鏈表之單向鏈表(實例講解)

    下面小編就為大家?guī)硪黄猵ython數(shù)據(jù)結構鏈表之單向鏈表(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Python字典一個key對應多個value幾種實現(xiàn)方式

    Python字典一個key對應多個value幾種實現(xiàn)方式

    python中字典的健和值是一一對應的,如果對字典進行添加操作時如果健的名字相同,則當前健對應的值就會被覆蓋,有時候我們想要一個健對應多個值的場景,這篇文章主要給大家介紹了關于Python字典一個key對應多個value幾種實現(xiàn)方式的相關資料,需要的朋友可以參考下
    2023-10-10
  • python 音頻和視頻合并自動裁剪

    python 音頻和視頻合并自動裁剪

    本文主要介紹了python 音頻和視頻合并自動裁剪,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • 基于PyQt5實現(xiàn)SqlServer數(shù)據(jù)庫表導出Excel表格小工具

    基于PyQt5實現(xiàn)SqlServer數(shù)據(jù)庫表導出Excel表格小工具

    這篇文章主要為大家詳細介紹了PyQt5的應用案例之實現(xiàn)SqlServer數(shù)據(jù)庫表導出Excel表格小工具,文中的示例代碼講解詳細,需要的小伙伴可以參考一下
    2023-12-12
  • 詳解python中的defaultdict?默認值

    詳解python中的defaultdict?默認值

    這篇文章主要介紹了defaultdict?默認值,defaultdict是python內建dict類的一個字類,功能與dict相同,但它帶有一個默認的值,若key值不存在時返回一個默認的值,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • OpenCV立體圖像深度圖Depth Map基礎

    OpenCV立體圖像深度圖Depth Map基礎

    這篇文章主要為大家介紹了OpenCV立體圖像深度圖Depth Map基礎詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • python抓取網(wǎng)站的圖片并下載到本地的方法

    python抓取網(wǎng)站的圖片并下載到本地的方法

    今天小編就為大家分享一篇python抓取網(wǎng)站的圖片并下載到本地的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python Django 創(chuàng)建應用過程圖示詳解

    python Django 創(chuàng)建應用過程圖示詳解

    這篇文章主要介紹了python Django 創(chuàng)建應用過程圖示詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python3.x提取中文的正則表達式示例代碼

    python3.x提取中文的正則表達式示例代碼

    這篇文章主要介紹了python3.x中提取中文的正則表達式的書寫,需要的朋友可以參考下
    2019-07-07

最新評論