欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 是否為協(xié)程

Python自2.5版本開始,引入了協(xié)程的概念,當(dāng)時(shí)基于生成器并加入了yield關(guān)鍵字,這是Python構(gòu)建高性能異步IO編程的基礎(chǔ)。

import asyncio
async def hello():
print("Hello")
await asyncio.sleep(1)
print("World")
loop = asyncio.get_event_loop()
loop.run_until_complete(hello())
loop.close()

上述示例程序就是Python使用asyncio庫實(shí)現(xiàn)的協(xié)程例子,其中hello()函數(shù)就是一個(gè)協(xié)程對(duì)象。

協(xié)程的優(yōu)勢(shì)在于可以充分利用單線程的優(yōu)勢(shì),避免了多線程的繁雜;同時(shí)由于協(xié)程是完全在內(nèi)存中的運(yùn)行,因此執(zhí)行效率極高。

在Python的協(xié)程編程中,除了使用asyncio庫外,還可以通過第三方的greenlet庫或者使用async/await關(guān)鍵字來實(shí)現(xiàn)。

import greenlet
def test1():
print("start coroutine...")
gr2.switch()
print("test1 finished!")
def test2():
print("start coroutine...")
gr1.switch()
print("test2 finished!")
gr1 = greenlet.greenlet(test1)
gr2 = greenlet.greenlet(test2)
gr1.switch()

上述示例程序就是使用greenlet庫實(shí)現(xiàn)的協(xié)程例子。

總結(jié)來說,Python在語言層面支持協(xié)程,而且通過asyncio庫、greenlet庫和async/await關(guān)鍵字等,提供了多種實(shí)現(xiàn)協(xié)程的方式,極大地方便了Python開發(fā)者進(jìn)行高性能異步編程。