KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

Threadとmultiprocess、同期(Sync)の処理時間を比較する

登録日 :2023/09/26 06:25
カテゴリ :Python基礎

並列処理(Threadとmutltiprocess)と同期処理(逐次処理)の処理時間を比較するサンプルプログラム

適当な関数処理の定義

def worker():
    print('start')
    time.sleep(2)
    print('end')

逐次処理(sync)の場合

if __name__ == '__main__':
    start = time.time()
    # sync
    worker()
    worker()

    end = time.time()
    print('time {: 4f}\n'.format(end - start))

threadingの場合

import threading
import time

if __name__ == '__main__':
    start = time.time()
    # sync
    # worker()
    # worker()

    # threading
    t1 = threading.Thread(target=worker)
    t2 = threading.Thread(target=worker)
    t1.start()
    t2.start()
    t1.join()
    t2.join()

    end = time.time()
    print('time {: 4f}\n'.format(end - start))

multiprocessの場合

import multiprocessing
import time

if __name__ == '__main__':
    start = time.time()
    # multiprocess
    p1 = multiprocessing.Process(target=worker)
    p2 = multiprocessing.Process(target=worker)
    p1.start()
    p2.start()
    p1.join()
    p2.join()

    end = time.time()
    print('time {: 4f}\n'.format(end - start))