4,003 views
この記事は最終更新から 1791日 が経過しています。
(71) threading.Threadでマルチスレッド処理 と同じことをマルチプロセスで実行してみる。
1. プログラム作成
複数プロセスで実行する関数を作成する。
from multiprocessing import Process, Manager def makeMsg(name, outList, outDict): msg = 'Hello! I am %s.' % name outList.append(msg) outDict[name] = msg # or outDict.update({name: msg})
プロセスを3個起動してみる。
if __name__ == '__main__': names = ['aaa','bbb','ccc'] mng = Manager() outList = mng.list() outDict = mng.dict() prs = [] for name in names: pr = Process(target=makeMsg, args=(name, outList, outDict)) prs.append(pr) for i in range(len(prs)): prs[i].start() for i in range(len(prs)): prs[i].join() print outDict.keys() print outDict print outList
2. 実行結果
[user@]$ python hello_mp.py ['aaa', 'bbb', 'ccc'] {'aaa': 'Hello! I am aaa.', 'bbb': 'Hello! I am bbb.', 'ccc': 'Hello! I am ccc.'} ['Hello! I am aaa.', 'Hello! I am bbb.', 'Hello! I am ccc.']