Pythonでは、スレッドに引数を渡す方法がいくつかあります。その一つは、threading.Thread
のargs
やkwargs
パラメータを使用する方法です。
import logging
import threading
import time
logging.basicConfig(level=logging.DEBUG, format='%(threadName)s: %(message)s')
def thread1():
logging.debug('start1')
time.sleep(3)
logging.debug('end1')
def thread2(x, y=0):
logging.debug('start2')
logging.debug(x)
logging.debug(y)
time.sleep(5)
logging.debug('end2')
if __name__ == '__main__':
t1 = threading.Thread(name='rename thread', target=thread1)
t2 = threading.Thread(args=(10,), kwargs={'y': 5}, target=thread2)
t1.start()
t2.start()
print('started')
このコードでは、thread1
とthread2
という2つの関数を定義しています。それぞれの関数は、スレッドで実行されます。thread1
は引数を取らず、thread2
は2つの引数x
とy
を取ります。
スレッドを作成するためには、threading.Thread
クラスを使用します。このクラスのインスタンスを作成する際に、target
パラメータにスレッドで実行したい関数を指定します。また、args
パラメータにはタプル形式で関数に渡す引数を指定し、kwargs
パラメータには辞書形式でキーワード引数を指定します。
この方法を使用すると、スレッドで実行する関数に任意の引数を渡すことができます。これにより、スレッドで実行する関数の振る舞いを柔軟に制御することが可能になります。