Appearance
Async 与 Concurrency(Harness Service Engineering)
掌握 Harness 单机执行底座:structured concurrency、cancellation、bounded queue、race 与执行模型选择。
推荐阅读顺序
1. asyncio 到底在调度什么:Coroutine、Event Loop 与 Awaitable
回答:coroutine 创建后到底何时执行,Event Loop 和 Awaitable 怎样共同决定调度与挂起?
2. Task、TaskGroup 与 Structured Concurrency
回答:并发 Task 由谁拥有生命周期,TaskGroup / Structured Concurrency 如何让失败与取消可推理?
3. 异步任务怎样超时、取消和限流:Cancellation、Timeout 与 Semaphore
回答:Cancellation、timeout scope 和 semaphore 分别控制生命周期、时间和容量,传播语义怎样保持正确?
4. Harness 内部任务如何排队而不失控:asyncio.Queue、Producer / Consumer 与 Race
回答:单个 Harness 进程里 Model/Tool/Event 生产速度超过消费者时,怎样用 bounded asyncio.Queue 建立背压,并避免 await 交错造成共享状态竞争?
5. Harness 共享状态怎么保护:Lock、Coroutine、Thread 与 Process
回答:Harness 中的共享状态到底属于 coroutine、thread 还是 process 范围,什么时候需要 Lock,什么时候必须改用 ownership、DB CAS 或跨进程协调?
6. Harness 工作该放 Event Loop、Thread 还是 Process:I/O 与 CPU 并发选择
回答:Model/Tool/DB 调用、文件处理、Context 压缩和本地计算分别应放 event loop、thread 还是 process,怎样避免“写成 async 就不会阻塞”的误解?
本模块学习边界
- 暂不展开:分布式 Worker、Queue delivery 与跨进程 lease 后移 W10