久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python協(xié)程 | 協(xié)程與線程的區(qū)別是什么,、協(xié)程理解、python使用最簡單的方式來處理協(xié)程,?

 Python集中營 2022-10-10 發(fā)布于甘肅

1、協(xié)程和線程的區(qū)別是什么,?

協(xié)程 ,,又稱為微線程,它是實現(xiàn)多任務(wù)的另一種方式,,只不過是比線程更小的執(zhí)行單元,。因為它自帶CPU的上下文,這樣只要在合適的時機(jī),,我們可以把一個協(xié)程切換到另一個協(xié)程,。在實現(xiàn)多任務(wù)時, 線程切換從系統(tǒng)層面遠(yuǎn)不止保存和恢復(fù)CPU上下文這么簡單。操作系統(tǒng)為了程序運行的高效性,,每個線程都有自己緩存Cache等等數(shù)據(jù),,操作系統(tǒng)還會幫你做這些數(shù)據(jù)的恢復(fù)操作,所以線程的切換非常耗性能,。但是協(xié)程的切換只是單純地操作CPU的上下文一般在應(yīng)用程序中,,IO的消耗比較大時可以考慮使用協(xié)程來處理多任務(wù),。還有一個不同點就是線程是操作系統(tǒng)擁有的、而協(xié)程卻是開發(fā)者通過特定手段來實現(xiàn)的,。

2,、python協(xié)程

 1# 第三方擴(kuò)展庫、實現(xiàn)協(xié)程
2
3import gevent
4
5def unit(name):
6
7    for i in range(3):
8
9        print('當(dāng)前協(xié)程: ', name)
10
11        print('業(yè)務(wù)循環(huán): ',i)
12
13        # 這里的耗時操作需要使用gevent提供的sleep()函數(shù)
14
15        gevent.sleep(1)
16
17if __name__ == "__main__":
18
19    # 創(chuàng)建三個協(xié)程
20
21    ge1 = gevent.spawn(unit, '協(xié)程1')
22
23    ge2 = gevent.spawn(unit, '協(xié)程2')
24
25    ge3 = gevent.spawn(unit, '協(xié)程3')
26
27    # 等待協(xié)程
28
29    ge1.join()
30
31    ge2.join()
32
33    ge3.join()
3,、結(jié)果分析

 1# 分析:在加上協(xié)程的sleep()函數(shù)等待后,,可以發(fā)現(xiàn)每執(zhí)行到一個循環(huán)的等待時間時就不會立即進(jìn)行下一個循環(huán)打印。
2# 而是下一個協(xié)程進(jìn)來執(zhí)行,,因此就會下面的輸出結(jié)果,。
3# 當(dāng)前協(xié)程:  協(xié)程1
4# 業(yè)務(wù)循環(huán):  0
5# 當(dāng)前協(xié)程:  協(xié)程2
6# 業(yè)務(wù)循環(huán):  0
7# 當(dāng)前協(xié)程:  協(xié)程3
8# 業(yè)務(wù)循環(huán):  0
9# 當(dāng)前協(xié)程:  協(xié)程1
10# 業(yè)務(wù)循環(huán):  1
11# 當(dāng)前協(xié)程:  協(xié)程2
12# 業(yè)務(wù)循環(huán):  1
13# 當(dāng)前協(xié)程:  協(xié)程3
14# 業(yè)務(wù)循環(huán):  1
15# 當(dāng)前協(xié)程:  協(xié)程1
16# 業(yè)務(wù)循環(huán):  2
17# 當(dāng)前協(xié)程:  協(xié)程2
18# 業(yè)務(wù)循環(huán):  2
19# 當(dāng)前協(xié)程:  協(xié)程3
20# 業(yè)務(wù)循環(huán):  2
21
22# 分析:如果取消協(xié)程等待,則打印出的結(jié)果應(yīng)該是下面,,只有同一個協(xié)程結(jié)果執(zhí)行完畢后再執(zhí)行下一個協(xié)程,。
23# 當(dāng)前協(xié)程:  協(xié)程1
24# 業(yè)務(wù)循環(huán):  0
25# 當(dāng)前協(xié)程:  協(xié)程1
26# 業(yè)務(wù)循環(huán):  1
27# 當(dāng)前協(xié)程:  協(xié)程1
28# 業(yè)務(wù)循環(huán):  2
29# 當(dāng)前協(xié)程:  協(xié)程2
30# 業(yè)務(wù)循環(huán):  0
31# 當(dāng)前協(xié)程:  協(xié)程2
32# 業(yè)務(wù)循環(huán):  1
33# 當(dāng)前協(xié)程:  協(xié)程2
34# 業(yè)務(wù)循環(huán):  2
35# 當(dāng)前協(xié)程:  協(xié)程3
36# 業(yè)務(wù)循環(huán):  0
37# 當(dāng)前協(xié)程:  協(xié)程3
38# 業(yè)務(wù)循環(huán):  1
39# 當(dāng)前協(xié)程:  協(xié)程3
40# 業(yè)務(wù)循環(huán):  2


關(guān)注 Python集中營
領(lǐng)取編程干貨
培養(yǎng)編程思想

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多