4,643 views
この記事は最終更新から 2373日 が経過しています。
(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.']
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2026-04-19: 0回 2026-04-18: 0回 2026-04-17: 0回 2026-04-16: 0回 2026-04-15: 0回 2026-04-14: 1回 2026-04-13: 0回