日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python并发编程之协程

發布時間:2025/3/21 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python并发编程之协程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

python并發編程之協程

?

1、協程:
單線程實現并發
在應用程序里控制多個任務的切換+保存狀態
優點:
應用程序級別速度要遠遠高于操作系統的切換
缺點:
多個任務一旦有一個阻塞沒有切,整個線程都阻塞在原地
該線程內的其他的任務都不能執行了

?

一旦引入協程,就需要檢測單線程下所有的IO行為,
實現遇到IO就切換,少一個都不行,以為一旦一個任務阻塞了,整個線程就阻塞了,
其他的任務即便是可以計算,但是也無法運行了

?

2、協程序的目的:
想要在單線程下實現并發
并發指的是多個任務看起來是同時運行的
并發=切換+保存狀態

?

#串行執行 # import time # # def func1(): # for i in range(10000000): # i+1 # # def func2(): # for i in range(10000000): # i+1 # # start = time.time() # func1() # func2() # stop = time.time() # print(stop - start)

?

#基于yield并發執行 # import time # def func1(): # while True: # print('func1') # yield # # def func2(): # g=func1() # for i in range(10000000): # print('func2') # i+1 # time.sleep(3) # next(g) # # # start=time.time() # func2() # stop=time.time() # print(stop-start)

?對于單線程下,我們不可避免程序中出現io操作,但如果我們能在自己的程序中(即用戶程序級別,而非操作系統級別)控制單線程下的多個任務能在一個任務遇到io阻塞時就切換到另外一個任務去計算,這樣就保證了該線程能夠最大限度地處于就緒態,即隨時都可以被cpu執行的狀態,相當于我們在用戶程序級別將自己的io操作最大限度地隱藏起來,從而可以迷惑操作系統,讓其看到:該線程好像是一直在計算,io比較少,從而更多的將cpu的執行權限分配給我們的線程。

?協程的本質就是在單線程下,由用戶自己控制一個任務遇到io阻塞了就切換另外一個任務去執行,以此來提升效率。為了實現它,我們需要找尋一種可以同時滿足以下條件的解決方案:

?

#1. 可以控制多個任務之間的切換,切換之前將任務的狀態保存下來,以便重新運行時,可以基于暫停的位置繼續執行。#2. 作為1的補充:可以檢測io操作,在遇到io操作的情況下才發生切換

?

#pip3 install gevent # from gevent import monkey,spawn;monkey.patch_all() # import time # # def eat(name): # print('%s eat 1' %name) # time.sleep(3) # print('%s eat 2' %name) # # def play(name): # print('%s play 1' %name) # time.sleep(1) # print('%s play 2' %name) # # start=time.time() # g1=spawn(eat,'egon') # g2=spawn(play,'zmy') # # g1.join() # g2.join() # print(time.time() - start) # print(g1) # print(g2)from gevent import monkey,spawn;monkey.patch_all() from threading import current_thread import timedef eat():print('%s eat 1' %current_thread().name)time.sleep(3)print('%s eat 2' %current_thread().name)def play():print('%s play 1' %current_thread().name)time.sleep(1)print('%s play 2' %current_thread().name)g1=spawn(eat,) g2=spawn(play,)print(current_thread().name) g1.join() g2.join()

?

?

轉載于:https://www.cnblogs.com/hanbowen/p/9325701.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的python并发编程之协程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 台湾150部性三级 | 神马午夜在线 | 91丨国产丨捆绑调教 | 精品久久国产字幕高潮 | 黄色在线播放 | 国产精品9999 | 国产精品人人妻人人爽人人牛 | 色妺妺视频网 | 在线你懂| 99er精品视频 | 日韩中文一区二区三区 | 国产精品无码AV无码国产 | www.在线观看av | 中文字幕中文字幕 | 欧美日韩在线视频观看 | 国产一区二区三区四区五区在线 | 亚洲免费黄色网址 | 女同在线视频 | 欧美69囗交视频 | 欧美一区二区三区黄片 | 午夜激情电影在线观看 | 精品久久久久久久久久久久久久久久 | 亚洲国产福利视频 | 大学生高潮无套内谢视频 | 欧美v在线| 婷婷五综合| 日本三级视频在线观看 | 国产淫片 | 国产奶水涨喷在线播放 | 国产精品av在线免费观看 | 日本一本高清视频 | 91免费. | 麻豆av免费 | 国产精品久久999 | www.黄色av| 国产精品高潮呻吟 | 日韩精品视频在线免费观看 | 日韩极品视频在线观看 | 婷婷综合另类小说色区 | 黑人3p波多野结衣在线观看 | av小说免费在线观看 | 免费看片黄色 | 免费网站www在线观看 | 欧美资源站 | 四虎久久 | 91免费国产在线 | 日韩欧美精品中文字幕 | 精品国产一区二区三区久久 | 狠狠干2021| 午夜福利三级理论电影 | 少妇扒开粉嫩小泬视频 | 777奇米四色 | 粉嫩av国产一区二区三区 | av在线视| 国产又大又黄的视频 | 色播亚洲| 国产精品99精品无码视亚 | 欧美极品在线播放 | 久一区二区三区 | 911亚洲精品 | 在线观看中文字幕2021 | 69精品在线观看 | 国产成人精品一区二区三区四区 | 性xxxx欧美 | 91av欧美 | 操你啦影院 | 国产一区二区视频在线 | 久久久夜夜夜 | 天堂а在线中文在线新版 | 一本一道人人妻人人妻αv 九一在线视频 | 欧美在线免费观看 | av日韩一区二区 | ww久久| 午夜啪啪福利视频 | 亚洲最黄视频 | 日日夜夜免费精品 | 男男做爰猛烈叫床爽爽小说 | 麻豆精品国产传媒av绿帽社 | 女人和拘做爰正片视频 | 黄色麻豆视频 | 三级不卡| 97操操 | 麻豆成人网 | 2019中文字幕在线 | 日韩av网页 | 僵尸叔叔在线观看国语高清免费观看 | 日韩美一级片 | 在线观看av的网站 | 天堂网视频在线观看 | 黄页视频在线观看 | 欧美三级一区二区三区 | 国产美女免费 | 7777久久亚洲中文字幕 | 视频这里只有精品 | 青青草久久 | 午夜一二三区 | 亚洲综合在线视频 | 毛片哪里看 | 四季av中文字幕一区 |