Heim  >  Artikel  >  Java  >  Wie ruft man Werte ab, die in einem Thread in Java geändert wurden?

Wie ruft man Werte ab, die in einem Thread in Java geändert wurden?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 20:00:03994Durchsuche

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

Zugriff auf Rückgabewerte von Threads

Beim Einsatz von Multithreading in der Programmierung stößt man häufig auf das Konzept der Rückgabe von Werten von Threads. Dieser Artikel befasst sich mit einem Fall, in dem ein Wert innerhalb eines Threads geändert wird, und unser Ziel ist es, ihn innerhalb der Aufrufmethode abzurufen.

Stellen Sie sich ein Szenario vor, in dem ein HandlerThread innerhalb eines test() Methode zum Ausführen einer Aufgabe. Eine Variable mit dem Namen value wird innerhalb des Threads geändert und wir versuchen, ihren aktualisierten Wert an die Methode test() zurückzusenden.

Um dieses Ziel zu erreichen, muss die Thread kann einen Wert nicht direkt zurückgeben. Stattdessen können wir einen alternativen Ansatz verfolgen. Wir erstellen eine Klasse, die die Schnittstelle

Runnable implementiert, wie im folgenden Codeausschnitt gezeigt:

public class Foo implements Runnable {

    private volatile int value;

    @Override
    public void run() {
        value = 2;
    }

    public int getValue() {
        return value;
    }
}
Innerhalb dieser Klasse deklarieren wir eine flüchtige Ganzzahlvariable

Wert und überschreiben Sie die Methode run(), um ihren Wert zu aktualisieren. Zusätzlich definieren wir die Methode getValue(), um den aktualisierten Wert abzurufen.

Um diesen Ansatz zu nutzen, erstellen wir eine Instanz der Klasse

Foo und instanziieren ein Thread Objekt, das diese Instanz als Ziel verwendet. Runnable:

Foo foo = new Foo();
Thread thread = new Thread(foo);
Wir initiieren den Thread und verbinden ihn mit dem Hauptthread:

thread.start();
thread.join();
Endlich können wir ihn abrufen den aktualisierten

Wert durch Zugriff auf die getValue()-Methode der Foo-Instanz:

int value = foo.getValue();
Durch diesen Ansatz geben wir effektiv a zurück Wert aus dem Thread, indem Sie eine

Runnable-Klasse erstellen, die den gewünschten Wert kapselt und ihn über eine Getter-Methode verfügbar macht. Dadurch können wir innerhalb der Aufrufmethode auf den aktualisierten Wert zugreifen.

Das obige ist der detaillierte Inhalt vonWie ruft man Werte ab, die in einem Thread in Java geändert wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn