补全:并发求和
(每道题开头都有同一段:square(x) 是个协程,里面 await asyncio.sleep(0) 让出控制再返回 x*x;run_list(xs) 用 asyncio.gather 并发算每个的平方、按提交顺序回列表;run_sum
事件循环是什么
异步里的「事件循环」,干的是【0】。
一个循环里有几个在真正执行
单线程事件循环,同一瞬间真正在执行的协程有【0】。
谁来决定切到哪个任务
事件循环里,从一个协程切到另一个,是【0】。
谁先跑完
(每道题开头都有同一段:run_loop(tasks),tasks 是 [(名字, 要跑几步)];事件循环每一轮给还没完的每个任务推进一步,跑完就记完成。交回完成顺序(步数少的先完、相同按加入序);ready_count 一轮能推进几个。)
一轮能推进几个
(每道题开头都有同一段:run_loop(tasks),tasks 是 [(名字, 要跑几步)];事件循环每一轮给还没完的每个任务推进一步,跑完就记完成。交回完成顺序(步数少的先完、相同按加入序);ready_count 一轮能推进几个。)
补全:一轮各推进一步
(每道题开头都有同一段:run_loop(tasks),tasks 是 [(名字, 要跑几步)];事件循环每一轮给还没完的每个任务推进一步,跑完就记完成。交回完成顺序(步数少的先完、相同按加入序);ready_count 一轮能推进几个。)
补全:一轮推进几个
(每道题开头都有同一段:run_loop(tasks),tasks 是 [(名字, 要跑几步)];事件循环每一轮给还没完的每个任务推进一步,跑完就记完成。交回完成顺序(步数少的先完、相同按加入序);ready_count 一轮能推进几个。)
补全:谁最后完成
(每道题开头都有同一段:run_loop(tasks),tasks 是 [(名字, 要跑几步)];事件循环每一轮给还没完的每个任务推进一步,跑完就记完成。交回完成顺序(步数少的先完、相同按加入序);ready_count 一轮能推进几个。)
gather 是做什么的
三个请求一起发出去,各自等着 等待重叠,结果一起收回来 asyncio.gather 的作用是【0】。