补全:自己写一个 Guard

补全:自己写一个 Guard

(每道题开头都有同一段:上面那几样。) 贯穿全条的几样东西: Counter / SafeCounter 读-睡-写的计数器;Safe 版用 with self.lock 包住三步(conc_03

阅读更多 →
补全:try / finally 版

补全:try / finally 版

(每道题开头都有同一段:上面那几样。) 贯穿全条的几样东西: Counter / SafeCounter 读-睡-写的计数器;Safe 版用 with self.lock 包住三步(conc_03

阅读更多 →
异常飞出去,锁还在不在

异常飞出去,锁还在不在

(每道题开头都有同一段:上面那几样。) 贯穿全条的几样东西: Counter / SafeCounter 读-睡-写的计数器;Safe 版用 with self.lock 包住三步(conc_03

阅读更多 →
看锁在块前中后的状态

看锁在块前中后的状态

(每道题开头都有同一段:上面那几样。) 贯穿全条的几样东西: Counter / SafeCounter 读-睡-写的计数器;Safe 版用 with self.lock 包住三步(conc_03

阅读更多 →
放锁放在哪一行

放锁放在哪一行

手写 acquire/release 时,release 应该放在【0】。

阅读更多 →
谁拿谁放

谁拿谁放

线程甲 acquire 了锁,线程乙调用 release。这【0】。

阅读更多 →
范围该多大

范围该多大

with 块里该放的代码是【0】。

阅读更多 →
with 等于什么

with 等于什么

with lock: 这一行等价于【0】。

阅读更多 →
补全:加和减共用一把锁

补全:加和减共用一把锁

(每道题开头都有同一段:上面那几样。) 贯穿全条的几样东西: Counter / SafeCounter 读-睡-写的计数器;Safe 版用 with self.lock 包住三步(conc_03

阅读更多 →
补全:手写拿放

补全:手写拿放

(每道题开头都有同一段:上面那几样。) 贯穿全条的几样东西: Counter / SafeCounter 读-睡-写的计数器;Safe 版用 with self.lock 包住三步(conc_03

阅读更多 →