python暂停和恢复游戏_python如何异步、暂停和恢复任务?

Does each task get launched on separate thread?

不,通常异步运行在单线程中。在How asyncio package enables bar, to be an async task, with these

keywords, under the hood?

当您将函数定义为async时,此函数将成为生成器,允许使用__next__()方法“分步”执行它。await-是yield(实际上是yield from)执行流返回到全局事件循环的点,该循环管理所有协程的执行。在

这个简单的示例演示如何在不同生成器的执行流之间切换:def task(i):

yield 1

print('task {}: step 1'.format(i))

yield 2

print('task {}: step 2'.format(i))

tasks = [

task(1),

task(2),

task(3),

]

def execute_tasks(tasks):

i = 0

finished = []

while True:

# start executing tasks:

try:

tasks[i].__next__()

except StopIteration:

finished.append(i)

# check if any task unfinished:

if len(finished) == len(tasks):

return

# move to next unfinished task:

while True:

i += 1

if i > len(tasks) - 1:

i = 0

if not i in finished:

break

if __name__ == '__main__':

execute_tasks(tasks)

输出:

^{pr2}$

asyncio当然要复杂得多,并且允许你做得更多。在

但是我建议你使用asyncio代替它——它已经为你存在了,没有必要自己发明。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值