看板 Python 關於我們 聯絡資訊
※ 引述《sean72 (.)》之銘言: : 標題: Re: [問題] blocking queue 實作 : 時間: Sat Jul 21 17:25:43 2018 : : 謝謝幫忙review : : : : 推 flarehunter: 在空的時候同時有2個get()和1個put()可能會壞掉 07/20 23:30 : : → flarehunter: 有兩個MyQueue物件也會壞掉 另外為什麼要繼承Thread? 07/20 23:31 : : https://paste.ubuntu.com/p/Zjh3y6ychm/ : 抄了source code,改成這樣 : : Consumer1先跑,取得了self.not_empty,並且因為que == 0 : 所以等在while loop裡 (wait()) : : Consumer2接著跑,此時C2能取得self.not_empty lock嗎? : 他是怎麼進入等待的? : : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 172.89.32.145 : ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1532165146.A.897.html : 推 flarehunter: wait會釋放lock 所以別人才能拿lock再notify 07/21 18:11 : → flarehunter: https://docs.python.org/2/library/threading.html 07/21 18:12 C1 先取得lock C1 wait and release lock C2 取得lock C2 wait and release lock P1 此時P1 notify ,這個notify會按照wait的順序,先給C1 ? 還是C1 C2任選? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 172.89.32.145 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1532168461.A.5AF.html
flarehunter: 官方文件沒有保證notify會照wait的順序 07/21 18:48