1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】threadingを用いた並列処理

Posted at

threadingは並列処理を行うにあたって用いられるPythonの標準ライブラリです。当記事ではthreadingを用いた並列処理について簡単に取りまとめました。

threadingの基本的な使い方

threading.Threadを用いることで並列処理を行うことができます。当節では以下サンプルコードをいくつか確認します。

引数や返り値がない場合のサンプルコード

実行する関数に引数や返り値がない場合、threading.Threadtargetで関数名を指定することで並列処理を行うことができます。

threading1.py
import threading


def function1():
    for i in range(1000):
        if (i+1)%100==0:
            print(i+1)

def function2():
    for letter in 'abcdefghij':
        print(letter)

# スレッドを作成
thread_1 = threading.Thread(target=function1)
thread_2 = threading.Thread(target=function2)

# スレッドの実行
thread_1.start()
thread_2.start()

# スレッドが終了するのを待つ
thread_1.join()
thread_2.join()

・実行結果

100
200
300
400
a
b
c
d
500
e
f
g
h
600
i
700
j
800
900
1000

実行結果より、thread_1thread_2function1function2がそれぞれ並列で実行されていることが確認できます。実行結果の表示順は実行したタイミングによって変わるので何度か確認してみると良いと思います。

また、threading.Threadを用いるにあたってはthreading.Thread.startでスレッドを実行し、threading.Thread.joinでスレッドが終了するのを待つというのは抑えておくと良いです。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?