開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
入門 Python 3 (Bill Lubanovic (著)、斎藤 康毅 (監修)、長尾 高弘 (翻訳)、オライリージャパン)の10章(システム)、10.5(復習問題)6.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
import multiprocessing
import os
import time
import random
print('10-6')
def f():
n = random.randrange(1, 6)
print(f'pid: {os.getpid()}, sleep({n}秒)')
time.sleep(n)
print(f'pid: {os.getpid()}')
if __name__ == '__main__':
for _ in range(5):
ps = []
for _ in range(3):
p = multiprocessing.Process(target=f)
ps.append(p)
p.start()
for p in ps:
p.join()
入出力結果(Terminal, Jupyter(IPython))
$ ./sample3.py 10-6 pid: 2591, sleep(4秒) pid: 2592, sleep(1秒) pid: 2593, sleep(3秒) pid: 2592 pid: 2593 pid: 2591 pid: 2594, sleep(2秒) pid: 2595, sleep(3秒) pid: 2596, sleep(4秒) pid: 2594 pid: 2595 pid: 2596 pid: 2597, sleep(1秒) pid: 2598, sleep(2秒) pid: 2599, sleep(2秒) pid: 2597 pid: 2598 pid: 2599 pid: 2600, sleep(3秒) pid: 2601, sleep(5秒) pid: 2602, sleep(3秒) pid: 2600 pid: 2602 pid: 2601 pid: 2603, sleep(5秒) pid: 2604, sleep(5秒) pid: 2605, sleep(2秒) pid: 2605 pid: 2603 pid: 2604 $
0 コメント:
コメントを投稿