訪問執行緒的回傳值
在程式設計中使用多執行緒時,經常會遇到從執行緒傳回值的概念。本文將深入研究在執行緒內修改值的實例,我們的目標是在呼叫者方法中檢索它。
考慮一個場景,其中 HandlerThread 在 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 類別的實例並實例化使用此實例作為目標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中文網其他相關文章!