4

Python 2.7 では、異なるコアで複数のスレッドを実行することが許可されていないことを知っていますmultiprocessing。また、ある程度の同時実行を実現するには、モジュールを使用する必要があります。concurrent.futuresPython 3.4のモジュールを見ていました。を使用するThreadPoolExecutorと、異なるプロセスで異なるスレッドを実行できますか、それとも GIL の制約によってまだ拘束されていますか? そうでない場合、Python 3.4 を使用して異なるプロセッサでスレッドを実行する方法はありますか?

私のユースケースでは、複数のプロセスを使用することは絶対に不可能です。

4

1 に答える 1

5

いいえ。ThreadPoolExector は、複数のスレッドで作業をスケジュールするのに役立つ単なるクラスです。通常のスレッドの制約はすべて適用されます。

いくつかの混乱を解消するために、スレッドはオペレーティング システムの選択に応じて異なるプロセッサ/コアで実行されますが、同時に実行されることはありません。例外は、一部の C ベースの関数が、ロックを必要としないアクションの実行中に GIL を一時的に解放することです。

于 2014-06-24T23:22:27.263 に答える