私はmultiprocessing
Windows 上の Python 2.7 でモジュールを使用しており、複数のプロセスでデータを共有キューに出し入れしています。これを行うためにサブクラス化し、 によって作成されたキュー プロキシを引数としてmultiprocessing.Process
に渡します。SOに関する他の回答では、人々がこのキュープロキシを引数として渡すのを見てきましたが、メソッドに引数として渡そうとすると、エラーが発生します:multiprocessing.Manager()
__init__
map_async
__init__
TypeError: Pickling an AuthenticationString object is disallowed for security reasons
したがって、Windows では、サブクラスをインスタンス化するために渡すものはProcess
pickle 対応でなければならず、これらの共有オブジェクトには authkey が必要であることを理解しています (これにより、pickling が防止されます)。しかし、なぜそのキュー プロキシをサブクラスmap_async
ではなくに与えることができるのでしょうか? サブクラスを関数としてProcess
書き直す以外に、これを回避する良い方法はありますか?Process