⚠️ 自己写:只设标志不放毒丸
(每道题开头都有同一段:上面的有界队列。)
毒丸是一次 put,一定能把卡在 get 上的消费者叫醒、让它退出;「设个标志」不行——队列空时消费者阻塞在 get 上,根本执行不到「检查标志」。补全 exit_result(kind, queue_empty):kind 是「毒丸」→ 交回「退出」;kind 是「标志」且队列空 → 交回「STUCK」;否则「继续」。两种各试一次:
(每道题开头都有同一段:上面的有界队列。)
毒丸是一次 put,一定能把卡在 get 上的消费者叫醒、让它退出;「设个标志」不行——队列空时消费者阻塞在 get 上,根本执行不到「检查标志」。补全 exit_result(kind, queue_empty):kind 是「毒丸」→ 交回「退出」;kind 是「标志」且队列空 → 交回「STUCK」;否则「继续」。两种各试一次:
全部评论