Pythonでマルチスレッディングを行う際、スレッドからデータを返却する方法はいくつかあります。ここでは、その中でも主に使用される2つの方法を紹介します。

1. スレッドのインスタンス変数を使用する

threading.Threadを拡張し、返却データをインスタンス変数として保存します。以下にその例を示します。

from threading import Thread

class ThreadWithReturnValue(Thread):
    def __init__(self, group=None, target=None, name=None, args=(), kwargs={}, Verbose=None):
        Thread.__init__(self, group, target, name, args, kwargs)
        self._return = None

    def run(self):
        if self._target is not None:
            self._return = self._target(*self._args, **self._kwargs)

    def join(self, *args):
        Thread.join(self, *args)
        return self._return

このクラスを使用すると、スレッドのjoin()メソッドがターゲット関数の戻り値を返します。

2. グローバル変数を使用する

もう一つの方法は、グローバル変数を使用することです。スレッドが終了したら、その結果をグローバル変数に保存します。ただし、この方法はスレッドセーフではないため、注意が必要です。

以上がPythonのスレッディングでデータを返却する主な方法です。適切な方法を選択し、効率的なマルチスレッディングを実現しましょう。

投稿者 admin

コメントを残す

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