4,605 views
この記事は最終更新から 2305日 が経過しています。
(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-02-10: 0回 2026-02-09: 0回 2026-02-08: 0回 2026-02-07: 3回 2026-02-06: 0回 2026-02-05: 0回 2026-02-04: 0回