(二十二)独立练习与后续衔接
- 自拟:对照启动与等待。 把线程例子改成每次 start 后立刻 join,对比同一份输入的时间线;再恢复先全部启动,解释等待发生在哪一轮。
- 自拟:比较任务失败策略。 使用成功项、错误项与等待项,对照 TaskGroup、默认 gather 和
return_exceptions=True,记录哪些任务执行了收尾。 - 自拟:限制任务数量。 用两名异步工作任务处理一百个路径,让有界队列负责交付;统计同时处理数量与等待队列大小,结果按输入编号排列。
- 自拟:检查请求结构。 增加含空格、中文与
&的查询值,核对服务器解析出的字段;再发送 JSON 请求体,比较查询和正文的来源。 - 自拟:区别两类超时。 让单次请求的读取超时先到期,再让整批时间先到期,保留错误类型、任务收尾与数据库内容的检查。
- 自拟:防止重复新增。 给阅读日志操作设计编号,服务器记录已处理编号;连续发送相同操作时只保留一次新增,再讨论客户端重试策略。
- 自拟:把测试放进协作。 按第七章建立功能分支,修改一项并发控制或请求行为,留下能揭示差异的测试,再提交并查看 PR 中的变化。
下一章从“已经能取得响应”继续到“从页面与接口中提取整份目录”:解析 HTML、跟随分页、去重、保存与恢复。并发只是安排执行的方式,数据来源、记录含义和出错后的状态,仍然要沿每一步操作分别说明。
本章习题解答与推导 按题号整理实现、过程说明与运行检查,可在完成练习后逐项对照。