39Si

プログラミング関連の勉強した内容を簡単にまとめておきます

並列処理 threading[Python]

並列処理について

並列処理をしたいときに Python では multiprocessing モジュールを使うのが普通みたいだったけど、初心者の私には難しそうだったため、今回は簡単に扱えそうな threadingモジュールを試してみた。

threading_test.py

#! /usr/bin/python
#-*- coding:utf-8 -*-

import threading

def test():
    print "test"

#main
if __name__ == '__main__':

    # 新しいスレッドの生成
    t = threading.Thread(target=test)
    t.start()

    print "end"

動作の確認

ちゃんと動いているか分かりにくいので下のプログラムで確認した。

threading_test2.py

#! /usr/bin/python
#-*- coding:utf-8 -*-

import threading
import time

def test():
    i = 0
    while i<3:
        time.sleep(0.2)
        print "Loop2: %d" % i
        i = i + 1

#main
if __name__ == '__main__':

    # 新しいスレッドの生成
    t = threading.Thread(target=test)
    t.start()

    i = 0
    while i<3:
        time.sleep(0.1)
        print "Loop1: %d" % i
        i = i + 1

[実行結果]

Loop1: 0
Loop2: 0
Loop1: 1
Loop1: 2
Loop2: 1
Loop2: 2

大丈夫そう。

参考文献

http://docs.python.jp/2/library/threading.html
http://bty.sakura.ne.jp/wp/archives/69