新聞中心
1、差異說明

創(chuàng)新互聯(lián)建站網(wǎng)絡(luò)公司擁有十年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),成百上千客戶的共同信賴。提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站開發(fā)、網(wǎng)站定制、買友情鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應(yīng)式網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
實(shí)現(xiàn)多任務(wù)時(shí),線程切換從系統(tǒng)層面遠(yuǎn)不止保存和恢復(fù)CPU上下文這么簡單。操作系統(tǒng)為了程序運(yùn)行的高效性,每個線程都有自己緩存Cache等數(shù)據(jù),操作系統(tǒng)還會幫你做這些數(shù)據(jù)的恢復(fù)工作。所以線程的切換非常耗性能。
協(xié)程的切換只是單純的操作CPU的上下文,一秒鐘切換個上百萬次系統(tǒng)都可以。
2、實(shí)例
import time
def work1():
while True:
print("----work1---")
yield
time.sleep(0.5)
def work2():
while True:
print("----work2---")
yield
time.sleep(0.5)
def main():
w1 = work1()
w2 = work2()
while True:
next(w1)
next(w2)
if __name__ == "__main__":
main()
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
...省略...
以上就是python協(xié)程和線程的差異,希望對大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)Python教程
本文名稱:創(chuàng)新互聯(lián)Python教程:python協(xié)程和線程的差異
網(wǎng)頁路徑:http://www.dlmjj.cn/article/djhjsho.html


咨詢
建站咨詢
