Pythonの Queue.PriorityQueue に引いた件の詳細

「コンテナみたいな部品のメソッドを一つ一つmutexで同期化してもどうせソフトウェア全体としてスレッドセーフになりはしないのだから*1,そもそも部品のメソッドを一つ一つ同期化することは止めてユーザ側に委ねる」JavaVector から ArrayList に, Hashtable から HashMap に移行するときに人々はこの結論を学んだのではなかったのか.繰り返される悲劇っ・・・
同期化キューみたいな,(償却)O(1) 操作で条件変数の用例そのものみたいな部品はいいと思うんだ.Lock-free系も根底にある(ロックを代替する)アルゴリズムに対する薄いラッパだしね.しかし同期化ヒープて...

並べ替える O(log N) の間ずっとロック... 実害があるかはともかく生理的にダメだわ.

*1:最も単純で有名な例は:「2個のキューのうち片方の先頭からポップしてもう片方にプッシュする」操作で,両者の要素数の合計は不変量となるはずだが,個々のキューを同期化するだけではマルチスレッド環境下でこの不変量は壊れ得る.