Python協程

協程:

和進程,線程的不同:

進程,線程 搶佔式 進程和線程的切換,我們不能參與
協程 非搶佔式 協程的切換,由用戶來控制,主要解決I/O操作

協程的優點:

(1)極高的執行效率:因爲子程序切換由程序自身來控制,沒有線程切換的開銷

(2)不需要多線程的鎖機制,因爲只有一個線程,不存在同時寫變量的衝突

yield:

import time


# 有yield的函數就是生成器函數,
def test1():
    while True:
        print('test1....')
        time.sleep(1)
        yield


def test2():
    while True:
        print('test2...')
        time.sleep(1)
        yield


def main():
    g1 = test1()  # 返回一個生成器
    g2 = test2()
    while True:
        next(g1)  # 調用生成器的next()函數,開始執行函數體
        next(g2)


if __name__ == '__main__':
    main()

生成器有問題的同學歡迎去本人的博客【Python生成器】查看

下面爲你指路

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章