【发布时间】:2020-06-24 06:38:08
【问题描述】:
我正在尝试创建两个永远运行的进程,每个进程在它们内部运行一个异步循环。
我想了解逻辑是否正确。有没有更好的方法来做同样的事情?
import asyncio
import multiprocessing
async def my_async_func(topic):
while True:
await asyncio.sleep(5)
print(topic)
def create_aio_loop(topic):
loop = asyncio.get_event_loop()
asyncio.ensure_future(my_async_func(topic), loop=loop)
try:
loop.run_forever()
except KeyboardInterrupt:
loop.stop()
def main():
topic_a = 'New to Asyncio'
topic_b = 'New to Multiprocessing'
process_a = multiprocessing.Process(target=create_aio_loop, args=(topic_a, ))
process_b = multiprocessing.Process(target=create_aio_loop, args=(topic_b, ))
processes = [process_a, process_b]
try:
for process in processes:
process.start()
except KeyboardInterrupt:
for process in processes:
process.terminate()
process.join()
if __name__ == '__main__':
main()
【问题讨论】:
标签: python python-asyncio python-multiprocessing