WORKSHOP 06 / CAREER PRACTICE / 5H
准备一个可信的并发故障故事
并发岗位会追问关闭、等待和异常路径。本周练习把一个最小失败交错讲清,而不是用“加了锁”“TSan通过”代替线程安全论证。
在单元 47 · 用固定分区验证主项目线程生命周期对应的能力里程碑后,按当前求职需要安排。原W编号不代表日历周。
五次 60 分钟,留下具体产出
提取一个并发责任 · 60min
20分钟核实官方JD的当次内容;20分钟圈出queue/scheduling/networking/async等具体任务;20分钟写这个任务可能被问到的等待、容量和结束问题。
产出:一条职责对应三个可观察问题,避免凭关键词猜团队内部架构。
核对经验深度与支持范围 · 60min
20分钟检查JD是否要求生产排障或跨进程分布式经验;20分钟区分自己的单机线程实验与这些要求;20分钟标能用既有工作补充的沟通/测试行为及技术缺口。
产出:一份“已有/可迁移/未做”表,学习过TCP不自动变成生产网络运维。
写出最小失败交错 · 60min
用20分钟从可公开的个人材料选一处真实失败,或使用虚构案例;20分钟按T1/T2记录条件、等待、通知和关闭;20分钟给修复写正常、空关闭、失败关闭三条验收。
产出:一张至少5个事件的交错表,以及为什么修复能改变等待谓词的解释。
把故事写成问题—行动—验证 · 60min
15分钟读弱强稿;25分钟写120字以内中文与90秒英文版本;20分钟分别审查“没有race”“没有deadlock”“thread-safe”是否有足够范围说明。
产出:一个可被追问的故事和两条明确限制;测试工具名称不替代证据。
用一个变体打断故事 · 60min
20分钟问“队列满时close怎么办”;20分钟问“消费者已经开始等了吗”;20分钟记录自己不知道的交错,选择一个有限回归用例给现有主作品。
产出:两个追问的原回答和修订;缺口对应实际可测试条件,而不是新建泛化并发框架。
合计 300min,属于另列的60h工作坊总预算;不要求在没有合适岗位时凑投递数量。
FICTIONAL PRACTICE CASE
先看一份具体的判断过程
以下公司、候选人、JD、代码行为和数字均为本教材虚构练习,不能复制成自己的事实,也不对应真实开放岗位。
虚构岗位要求
虚构岗位 Spruce Runtime Tools 要求维护异步队列并定位关闭时挂起。
已给出的虚构证据
- 虚构候选人 Ada 在教学队列发现消费者等空队列时生产者失败,未close会挂起。
- Ada 加了受控失败用例,修复关闭通知,单机测试通过;没有穷尽所有交错。
先写自己的判断,再看草稿对照
需要修正的草稿
“Eliminated all concurrency bugs using ThreadSanitizer.”
按证据改写后
“Reproduced a shutdown hang when a producer failed while a consumer waited, added a controlled failure case, and updated the close-and-notify path.”
修改稿给出触发器和实际修复,允许继续追问谓词、锁和join。TSan主要针对执行中发现的数据竞争,不能证明没有死锁或所有路径正确。
当前判断:虚构材料支持一个具体debug故事;不支持全系统线程安全或全部并发bug被消除。
复制模板,填写当次事实
# W06 求职工作坊:准备一个可信的并发故障故事
记录性质:个人工作记录 / 虚构演练(二选一)
日期与时区:
当次JD并发任务/来源:
要求的生产/实验层级:
故事性质:真实已核/虚构演练
初始状态:
事件1..5(线程、谓词、操作):
失败现象与最小触发:
修复如何改变状态:
正常/空关闭/失败关闭验收:
实际工具与运行范围:
中文/英文故事:
队列满/等待确认两个追问:
仍未覆盖的交错:
下一次当场核验日期与触发条件:
本次只准备记录;真实发送/上传/投递需单独决定并执行。
填写后的材料留在自己的非公开记录中。示例、网页访问或材料准备不会自动变成“已投递”;真实发送、上传与提交由你另行决定和执行。
怎样核对本次实际产出
能用事件表解释失败和修复;材料明确动态测试范围;没有把测试通过等同于无死锁或全系统线程安全。
需要补读的知识位置
补读用来理解岗位要求,实际经历仍按可追溯材料表述。题目、职称或关键词相似,不足以证明经历相同。
从官方入口开始当次核验
- AMD 官方职业入口 ↗
从官方入口进入当次 JD 与申请入口;本页不宣称任何具体岗位仍开放。
- Tenstorrent 官方职业入口 ↗
核对职责、地点与岗位级别,以当次官方正文为准。
- Cerebras 官方招聘平台入口 ↗
JavaScript 招聘页需在浏览器实际打开;无法读取时记录未核实,不把空白页推断为关闭。
这里提供查询入口,不声称任何具体职位此刻仍开放。打不开页面时保留未核实,并记录遇到的情况。