pythonマルチプロセス)(マネージャのグローバル変数を共有

Managerがサポートするタイプのリスト、辞書、名前空間、ロック、RLOCK、セマフォ、BoundedSemaphore、コンディション、イベント、キュー、価値とアレイ。

しかしマネージャのプロセスリスト、辞書変数のデータ型などを使用した場合、トラップがあることに留意すべきManagerは必要によってトリガオブジェクト、参照する変数の値を変更するためのオブジェクトを監視することはできません__setitem__、それは方法を通知させるが。

トリガ__setitem__方法は、比較的簡単な方法は、C言語の交換のような2つの変数として、中間変数を増加させることである。INT A = 1; INT B = 2; INT TMP = A; = B; B = TMP。

Python例:

1  からマルチプロセッシングインポートマネージャ、工程
 2  
3  デフtest_manager():
 4  
5    M [0] [ ' ID ' ] = 2
 6  
7 M = マネージャー()リスト()。
 8  
9 m.append({ " ID ":1 })
 10  
11、P =プロセス(目標= test_manager)
 12  
13  p.start()
 14  
15  p.join()
 16  
17  印刷 M [0]

結果:

{ " ID ":1}

変更されていません

test_managerを変更します()

デフtest_manager():
    TMP =のM [0] 
    TMP { " ID " } = 2 
    M [0] = TMP

結果は実行します。

{ " ID ":2}

さらに、ための処理を注目すべきオブジェクトがピクルスにシリアライズすることができます

 

おすすめ

転載: www.cnblogs.com/fdzwdt/p/11357195.html