首頁 >Java >java教程 >如何檢索 Java 執行緒內修改的值?

如何檢索 Java 執行緒內修改的值?

Barbara Streisand
Barbara Streisand原創
2024-10-29 20:00:031058瀏覽

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

訪問執行緒的回傳值

在程式設計中使用多執行緒時,經常會遇到從執行緒傳回值的概念。本文將深入研究在執行緒內修改值的實例,我們的目標是在呼叫者方法中檢索它。

考慮一個場景,其中 HandlerThreadHandlerThread 中使用。 🎜>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 類別的實例並實例化使用此實例作為目標Runnable 的Thread

物件:
Foo foo = new Foo();
Thread thread = new Thread(foo);

我們啟動執行緒並將其與主執行緒連接:
thread.start();
thread.join();

最後,我們可以檢索透過存取Foo 實例的getValue() 方法更新value

int value = foo.getValue();

透過這種方法,我們有效地傳回一個透過建立一個封裝所需值並透過getter 方法公開它的Runnable

類別來從執行緒獲取值。這允許我們在呼叫者方法中存取更新的值。

以上是如何檢索 Java 執行緒內修改的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn