2018年5月31日木曜日

開発環境

入門 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 コメント:

コメントを投稿