並行プログラミングのPython - プロセス

ワン:使用しての基本的なプロセス

  • Windowsシステムのオープンプロセスは、またはメインにエラーになります必要があります
インポートマルチプロセッシング

デフタスク(引数):
     プリント(引数)


場合 __name__ == ' __main__ ' のための I における範囲(10 ):
        P = multiprocessing.Process(目標=タスク、引数の= (I))
        p.start()

 

2:プロセス間でデータを共有することはありません

  • プロセス
インポートマルチプロセッシング

DATA_LIST = [] 

DEF タスク(引数):
    data_list.append(引数)
    プリント(DATA_LIST)


場合 __name__ == ' __main__ ' のための I における範囲(10 ):
        P = multiprocessing.Process(目標=タスク、引数= (I))
        p.start()

[0] 
[ 1 ] 
[ 3 ] 
[ 2 ] 
[ 4 ] 
[ 5 ] 
[ 6 ] 
[7 ] 
[ 8 ] 
[ 9]
  • スレッド
インポート・マルチプロセッシング・
 インポートスレッド

DATA_LIST = [] 

DEF タスク(引数):
    data_list.append(引数)
    プリント(DATA_LIST)


場合 __name__ == ' __main__ ' のための I における範囲(10 ):
        P = threading.Thread(目標=タスク引数= (I))
        p.start()


[0] 
[0、 1 ] 
[0、 1、2 ] 
[0、 1、2、3 ] 
[0、 1、2、3、4 ] 
[0、 1、2、3、4、5] 
[0、 1、2、3、4、5、6 ] 
[0、 1、2、3、4、5、6、7 ] 
[0、 1、2、3、4、5、6、7、 8 ] 
[0、 1、2、3、4、5、6、7、8、9]

 

3:一般的な方法

  • 待っている参加
  • デーモン
インポートマルチプロセッシング

デフタスク(引数):
    P = multiprocessing.current_process()
     プリント(p.name、p.ident)#IDENT / PID 

なら __name__ == ' __main__ ' のための I における範囲(10 ):
        P = multiprocessing.Process (目標=タスク、引数= (I))
        p.name = STR(I)
        p.start()

 

4:オブジェクト指向のアプローチを作成するプロセス

輸入マルチプロセッシング・

クラスMyProcess(multiprocessing.Process):
     デフ実行します(自己):
         プリント(multiprocessing.current_process())

デフ(実行):
    P1 = MyProcess()
    p1.start()

の場合 __name__ == ' __main__ ' 
    実行()

 

おすすめ

転載: www.cnblogs.com/wc89/p/11105483.html