"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment récupérer une valeur modifiée à partir d’un thread en Java ?

Comment récupérer une valeur modifiée à partir d’un thread en Java ?

Publié le 2024-11-09
Parcourir:607

How to Retrieve a Modified Value from a Thread in Java?

Comment puis-je récupérer la valeur modifiée d'un thread ?

Dans ce scénario, un thread, en particulier un HandlerThread, s'exécute dans la méthode test() et un la valeur est modifiée dans ce fil. Le défi consiste à renvoyer cette valeur modifiée à la méthode test() pour un traitement ou une utilisation ultérieure.

Une approche consiste à créer un thread qui implémente l'interface Runnable, comme le montre l'extrait de code fourni. Dans la méthode run() de ce fil, vous pouvez définir la valeur selon vos besoins. De plus, vous pouvez créer une méthode getValue() pour récupérer cette valeur en externe.

Pour récupérer la valeur, vous pouvez lancer le thread, attendre qu'il se termine (via join()), puis accéder à la valeur. en utilisant la méthode getValue().

public class CustomThread implements Runnable {
    private volatile int value;

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

    public int getValue() {
        return value;
    }
}

Dans la méthode principale :

CustomThread thread = new CustomThread();
Thread t = new Thread(thread);
t.start();
t.join();
int retrievedValue = thread.getValue();

N'oubliez pas que l'utilisation d'une variable volatile comme la valeur garantit la visibilité et la cohérence entre les threads.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3