怎么算不阻塞循环了

把异步程序里的阻塞排查干净,判据是【0】。

开始练习 →

从现象认阻塞的原因

把四种现象和原因配对,打印四个字母:

开始练习 →

找出阻塞调用有几个

场景:~/aio/服务.py 里混着几个同步阻塞调用(time.sleep 之类),一个查找脚本会数出来。对照表列了八个数。 任务:按说明数出有几个阻塞调用,到对照表里查那个数对应的标记。 范围:只在 ~/aio 下你自己的异步程序里操作;

开始练习 →

第一个阻塞在第几行

场景:~/aio/服务.py 里第一个同步阻塞调用在某一行。对照表列了八个行号。 任务:找出第一个阻塞调用在第几行,到对照表里查那个数对应的标记。 范围:只在 ~/aio 下你自己的异步程序里操作;答案是运行后拿到的一段标记。 提交:把 ~

开始练习 →

哪种调用会卡循环

场景:~/aio/说明.txt 列了几种调用。对照表列了八个调用名。 任务:选出会卡住事件循环的那种(同步阻塞调用),到对照表里查它对应的标记。 范围:只在 ~/aio 下你自己的异步程序里操作;答案是运行后拿到的一段标记。 提交:把 ~/

开始练习 →

把一处 sleep 改成 await

场景:~/aio/服务.py 里有一处 time.sleep 卡着循环,说明写了改成哪种 await。 任务:把那处同步 sleep 改成 await asyncio.sleep(...),让阻塞计数降到 0。改好运行 ~/check。 范

开始练习 →

把同步请求改成异步

场景:~/aio/服务.py 里用了同步的 requests.get 卡着循环,说明写了改成哪种异步取法。 任务:把同步请求改成 await 的异步版,让阻塞计数降到 0。改好运行 ~/check。 范围:只在 ~/aio 下你自己的异步程

开始练习 →

改完还剩几个阻塞

场景:~/aio/服务.py 你改了一部分,查找脚本能数出还剩几处阻塞。对照表列了八个数。 任务:数出现在还剩几处阻塞调用,到对照表里查那个数对应的标记。 范围:只在 ~/aio 下你自己的异步程序里操作;答案是运行后拿到的一段标记。 提交

开始练习 →

哪个调用是不卡的 await 版

场景:~/aio/说明.txt 列了几种调用,有同步阻塞的、也有 await 版。对照表列了八个调用名。 任务:选出不会卡循环的那个(await 版),到对照表里查它对应的标记。 范围:只在 ~/aio 下你自己的异步程序里操作;答案是运行

开始练习 →

交付:把循环彻底解阻塞

场景:~/aio/服务.py 里有好几处同步阻塞,说明列了各要改成什么。 任务:把所有同步阻塞都换成 await 版,让阻塞计数降到 0、程序还能跑出对的结果。改好运行 ~/check。 范围:只在 ~/aio 下你自己的异步程序里操作;答

开始练习 →