测验:上下文跨越的边界
在Python 3.12中以alpha状态调用create_task后,仅调用者更改为beta。默认任务的观察结果是什么?
- 读取创建时复制的 alpha
- 等待时,阅读呼叫者的测试版
- 线程发生变化并读取空值。
- 由于调用者发生变化而发生异常
我在 alpha 中只创建了 to_thread(fn) 协程,并在 beta 中等待它,fn 读取 beta。预订时如何保留 alpha?
- fn中第一次复制当前上下文
- 在 alpha 版本中将 to_thread 协程安排为任务
- 在等待之前,只有调用者值被放入空上下文中。
- 在线程末尾,将 alpha 附加回原始线程。
什么实现会从常规 ThreadPoolExecutor 传递并且不会在可重用工作线程中留下值?
- 覆盖每个工作人员的全局请求变量
- 共享首次提交期间创建的所有上下文。
- 复制每个提交的调用者上下文并运行它。
- 任务完成后删除提交者的值。
仅当句柄正常返回时才分离。实际的 Task.cancel 测试需要进行哪些更改?
- 捕获所有取消并返回正常结果
- 将取消的请求的行李留在下一个请求中
- 再次执行回调,等待正常结束。
- 从finally中恢复并向调用者传达取消信息。
Role=admin 通过指定空的 OTel 上下文来提取。从这个观察中我们可以说什么呢?
- 外部值与现有本地行李分开读取
- 由于是新上下文,管理员权限也已验证。
- 记录所有跨度属性的外部值
- 由于它是一个空的Context,所以外部值也是可以信任的。
在本练习中,我们指定了出站区域=test-east 和目标仓库.internal.evil。正确的回报是多少?
- 行李标头仅包含允许的区域
- 空字典,因为目的地完全不同
- 擦除原始内容并仅留下区域的上下文
- 前缀被切断并转换为普通主机的字典