【发布时间】:2018-11-11 15:36:37
【问题描述】:
我使用asyncio事件循环,这是一种在Python3.x中执行异步/并发任务。
在线程上是否有任何相当于asyncio (async/await) 或 Go 语言中的协程?
[注意]:
不是parallelism + concurrency(多处理)模式。
[更新]:
这是一个在 Python 中使用 asyncio 的异步事件循环,以便更好地理解:
import asyncio
import time
async def async_say(delay, msg):
await asyncio.sleep(delay)
print(msg)
async def main():
task1 = asyncio.ensure_future(async_say(4, 'hello'))
task2 = asyncio.ensure_future(async_say(6, 'world'))
print(f"started at {time.strftime('%X')}")
await task1
await task2
print(f"finished at {time.strftime('%X')}")
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
输出:
started at 13:19:44
hello
world
finished at 13:19:50
任何帮助将不胜感激。
【问题讨论】:
-
寻求第三方资源(如图书馆)的问题是题外话。与其要求语言原语的等价物,更好的方法是询问您在 Go 中实际面临的特定问题以及如何解决该问题。
-
只问你具体需要什么。你的问题不只是清楚。
-
@ShudiptaSharma 我更新了我的问题以获得更好的理解,我在 Go lang 中寻找等效的方法/模式
标签: python-3.x asynchronous go concurrency python-asyncio