在Python文档中,它描述了如何启动和使用coroutines
。
本节介绍如何使用Task
。
在Task
部分中,其指出:
任务用于同时安排协程
我无法理解,当我coroutines
不使用Task
开始await
时会发生什么?代码是否正在运行asynchronously,但不能同时运行 ?这是否意味着当代码看到Task
时它就会执行其他操作?
当我使用join()
时,是否像一样启动两个线程并调用array
?我开始两个或多个任务,然后等待结果,对吗?
答案 0 :(得分:0)
在简单情况下,手动创建Tasks
与线程有点相似–您可以创建它们,事件循环最终将运行它们,并且最终应获得结果/异常。
但是在大多数情况下,您的代码是围绕await coro()
构建的-根本不是底层的。这意味着您的代码可以在coro
内执行一些I / O操作,因此进程可以自由地将隐式创建的任务放入队列,并在以后恢复执行。