补全:把耗时的活挪出锁

👁️ 4 人浏览 💬 0 人评论 ❤️ 添加收藏

本节的东西:

model(tasks)   时间模型:每条线程 (算, 改) 两段耗时;粗锁全串行 = Σ(算+改),细锁算并行改串行 = max(算) + Σ改;交回 (粗, 细)
timed(fn, workers, work)   开 workers 条线程各跑 fn(work),交回耗时
coarse(work)   sleep(work) 关在锁里再改 total;fine(work)   sleep 在锁外,只把改关在锁里

slow(work) 把 sleep 和更新都关在锁里。补全 quick(work):sleep 在锁外、只把更新关在锁里;两版各三条线程量一次,打印 quick 是否更快、两版各加的次数。

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论