Pythonの Queue.PriorityQueue に引いた件の詳細
「コンテナみたいな部品のメソッドを一つ一つmutexで同期化してもどうせソフトウェア全体としてスレッドセーフになりはしないのだから*1,そもそも部品のメソッドを一つ一つ同期化することは止めてユーザ側に委ねる」Javaで Vector
から ArrayList
に, Hashtable
から HashMap
に移行するときに人々はこの結論を学んだのではなかったのか.繰り返される悲劇っ・・・
同期化キューみたいな,(償却)O(1) 操作で条件変数の用例そのものみたいな部品はいいと思うんだ.Lock-free系も根底にある(ロックを代替する)アルゴリズムに対する薄いラッパだしね.しかし同期化ヒープて...
- http://docs.python.org/library/queue.html#Queue.PriorityQueue 8.10. Queue ― A synchronized queue class — Python v2.7.2 documentation
並べ替える O(log N) の間ずっとロック... 実害があるかはともかく生理的にダメだわ.