Java のスレッド内で変更された値を取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-29 20:00:03
オリジナル
1004 人が閲覧しました

How Do You Retrieve Values Modified Within a Thread in Java?

スレッドからの戻り値へのアクセス

プログラミングでマルチスレッドを利用する場合、スレッドからの戻り値の概念がよく登場します。この記事では、スレッド内で値が変更されるインスタンスについて詳しく説明し、呼び出し側メソッド内で値を取得することを目的としています。

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();
ログイン後にコピー
Foo

インスタンスの getValue() メソッドにアクセスすることにより、更新された :

このアプローチを通じて、事実上、
int value = foo.getValue();
ログイン後にコピー
Runnable

クラスを作成してスレッドから値を取得します。このクラスは、必要な値をカプセル化し、ゲッター メソッドを介して公開します。これにより、呼び出し側メソッド内の更新された値にアクセスできるようになります。

以上がJava のスレッド内で変更された値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!