のPythonのスレッドではじまり、最初はジョブが2つのスレッドに分割されるマージソートを実装しようとしています。私はcollections.deque
,itertools.islice
,threading.Thread
を使用しています。並べ替えは1の代わりに2つのスレッドで遅くなるようです
私は最初に2つのスレッドを作成し、通常はジョブの半分ずつ行います。その後、それらを結合して結果をマージします。しかし、は、2つのスレッドで通常より長く(約2倍の長さ)なります。通常はです。
どうすれば可能ですか? Here is a link to the code、必要であれば、私はここでの主な部分を再現することができます(私もCode Review SEにその質問を投稿し、私はむしろ短いこれを維持するだろう)
それはthis質問にリンクされている(Cで同様の問題のようです++)?どうもありがとうございました。
シリアルよりも遅い[pythonマルチスレッドの可能な複製]?(http://stackoverflow.com/questions/10789042/python-multi-threading-slower-than-serial) –
なぜdownvoteですか? – BusyAnt
CPythonのGILはマルチスレッドを制限しますが、あなたは 'multiprocessing'を使用することができます。 –