asyncio.get_event_loop()中有什么,如何在事件循环中注册事件

2024-06-06 08:40:19 发布

您现在位置:Python中文网/ 问答频道 /正文

代码如下,我的问题是: 1.asyncio.get_event_loop()在循环中得到了什么。我认为循环是将任务放入其中的地方,我们需要首先在循环中添加任务。对吗? 2.在代码中,
loop=asyncio.get\u event\u loop() 在开始时获取循环,但看起来尚未将任何内容放入循环中

import asyncio
import datetime
import time

def function_1(end_time, loop):
    print ("function_1 called")
    if (loop.time() + 1.0) < end_time:
        loop.call_later(1, function_2, end_time, loop)
else:
    loop.stop()

def function_2(end_time, loop):
    print ("function_2 called ")
    if (loop.time() + 1.0) < end_time:
        loop.call_later(1, function_3, end_time, loop)
    else:
    loop.stop()

def function_3(end_time, loop):
    print ("function_3 called")
    if (loop.time() + 1.0) < end_time:
        loop.call_later(1, function_1, end_time, loop)
    else:
        loop.stop()

def function_4(end_time, loop):
    print ("function_5 called")
    if (loop.time() + 1.0) < end_time:
        loop.call_later(1, function_4, end_time, loop)
    else:
        loop.stop()
loop = asyncio.get_event_loop()
end_loop = loop.time() + 9.0
loop.call_soon(function_1, end_loop, loop)
# loop.call_soon(function_4, end_loop, loop)
loop.run_forever()
loop.close()

Tags: loopeventasynciogetiftimedeffunction