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

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

Barbara Streisand
發布: 2024-10-29 20:00:03
原創
1091 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板