共享变量为什么会错

两条线程各把共享计数器加 30 次,最后却小于 60。根本原因是【0】。

开始练习 →

什么叫竞争

「竞争条件」这个词说的是【0】。

开始练习 →

锁管什么

给「读、加、写」三步套上一把锁,效果是【0】。

开始练习 →

两条线程各加 30 次

(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) bump 把「读、睡一毫秒、写」当成

开始练习 →

补全:把三步锁起来

(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 补全 bump:用 with loc

开始练习 →

补全:各写各的格子

(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 六条线程各写字典里自己名字的那一格(

开始练习 →

补全:累加总字节

(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 六条线程各把自己的字节数加到共享的

开始练习 →

补全:只读的共享不用锁

(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 六条线程都读同一份配置(只读不改),

开始练习 →

线程版为什么快

顺序抓六个来源要 0.34 秒,六条线程一起抓只要 0.10 秒。省下的时间来自【0】。

开始练习 →

线程不是免费的

把「等 0.0001 秒」的一万个小任务也各开一条线程,反而比顺序做慢。原因是【0】。

开始练习 →