スレッドからの戻り値へのアクセス
プログラミングでマルチスレッドを利用する場合、スレッドからの戻り値の概念がよく登場します。この記事では、スレッド内で値が変更されるインスタンスについて詳しく説明し、呼び出し側メソッド内で値を取得することを目的としています。
HandlerThread が test() メソッドを使用してタスクを実行します。 value という名前の変数がスレッド内で変更され、その更新された値を test() メソッドに送り返そうとします。
この目標を達成するには、スレッドは値を直接返すことはできません。代わりに、別のアプローチを採用することもできます。以下のコード スニペットに示すように、Runnable インターフェイスを実装するクラスを作成します。
public class Foo implements Runnable { private volatile int value; @Override public void run() { value = 2; } public int getValue() { return value; } }
value を宣言します。 run() メソッドをオーバーライドして値を更新します。さらに、更新された値を取得するための getValue() メソッドを定義します。
このアプローチを利用するには、Foo クラスのインスタンスを作成し、Thread オブジェクト Runnable:
スレッドを開始し、メインスレッドと結合します:Foo foo = new Foo(); Thread thread = new Thread(foo);
thread.start(); thread.join();
インスタンスの getValue() メソッドにアクセスすることにより、更新された 値:
このアプローチを通じて、事実上、int value = foo.getValue();
クラスを作成してスレッドから値を取得します。このクラスは、必要な値をカプセル化し、ゲッター メソッドを介して公開します。これにより、呼び出し側メソッド内の更新された値にアクセスできるようになります。
以上がJava のスレッド内で変更された値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。