Pythonでは、スレッドに引数を渡す方法がいくつかあります。その一つは、threading.Threadargskwargsパラメータを使用する方法です。

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')

このコードでは、thread1thread2という2つの関数を定義しています。それぞれの関数は、スレッドで実行されます。thread1は引数を取らず、thread2は2つの引数xyを取ります。

スレッドを作成するためには、threading.Threadクラスを使用します。このクラスのインスタンスを作成する際に、targetパラメータにスレッドで実行したい関数を指定します。また、argsパラメータにはタプル形式で関数に渡す引数を指定し、kwargsパラメータには辞書形式でキーワード引数を指定します。

この方法を使用すると、スレッドで実行する関数に任意の引数を渡すことができます。これにより、スレッドで実行する関数の振る舞いを柔軟に制御することが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です