python_asycnio 협 정 을 사용 한 경험

1668 단어 python
import asyncio


@asyncio.coroutine
def common_generator(id):
    for i in range(0, 5):
        yield from asyncio.sleep(1)
        print("the id is :", id)


def test_coroutine(id):
    yield from common_generator(id)



loop = asyncio.get_event_loop()
task = [test_coroutine(1), test_coroutine(2),test_coroutine(3)]
loop.run_until_complete(asyncio.wait(task))

loop.close()
python 3.4 에서 asyncio 를 사용 하여 협 정 을 실현 할 수 있 습 니 다.협조 실현,loop.run 호출until_complete(asyncio.wait(task))조건 을 충족 시 켜 야 합 니 다.
1.전달 하 는 class 는 반드시 coroutine 이 어야 합 니 다.자신 은 coroutine 또는 yield from 하나의 coroutine 입 니 다.
2.yield from asyncio.sleep(1)에 가입 하지 않 으 면 task 의 임 무 는 무 작위 로 실 행 됩 니 다.

좋은 웹페이지 즐겨찾기