Pythonの:ロック `threading`と` multiprocessing`交換から?
-
09-09-2019 - |
質問
threading
モジュールからのロックがmultiprocessing
モジュールからのものと互換性はありますか?
解決
あなたは一般的に、交換可能に2を使用することができますが、違いを認識する必要があります。例えば、multiprocessing.Eventは、アプリケーションの下のプラットフォームに敏感であるという名前のセマフォによって支えられています。
Multiprocessing.LockはMultiprocessing.SemLockによって支えられて - それは、名前付きセマフォを必要とします。本質的には、同義的にそれらを使用することができますが、マルチプロセッシングのロックを使用すると、アプリケーション(つまり、それはBSD上では動作しません:))
上のいくつかのプラットフォーム要件を紹介します他のヒント
私はそうは思いません。マルチロックは、おそらく共有メモリ内であろうがスレッドロックは、同じプロセス内である。
私がチェックした最後の時間は、マルチプロセッシングを使用すると、スレッドのロックでキューにロックを共有することはできません。
はい、あなたは一プロセスアプリケーションで通常通りマルチプロセッシングモジュールからロックを使用することができますが、マルチプロセッシングを使用している場合、あなたはそのロックを使用する必要があります。
所属していません StackOverflow