Maison > Java > javaDidacticiel > Introduction à l'attente et au réveil des threads en Java (code)

Introduction à l'attente et au réveil des threads en Java (code)

不言
Libérer: 2018-10-08 15:48:36
avant
2962 Les gens l'ont consulté

Cet article vous apporte une introduction (code) sur l'attente et le réveil des threads en Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

class ThreadA extends Thread{

    public ThreadA(String name) {
        super(name);
    }

    public void run() {
        synchronized (this) {
            System.out.println(Thread.currentThread().getName()+" call notify()");
            notify();
        }
    }
}
public class WaitTest {
    public static void main(String[] args) {
        ThreadA t1 = new ThreadA("t1");
        synchronized(t1) {
            try {
                // 启动“线程t1”
                System.out.println(Thread.currentThread().getName()+" start t1");
                t1.start();

                // 主线程等待t1通过notify()唤醒。
                System.out.println(Thread.currentThread().getName()+" wait()");
                t1.wait();

                System.out.println(Thread.currentThread().getName()+" continue");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
Copier après la connexion

Résultat de sortie : démarrage principal t1 -> attente principale() -> appel t1 notify() ->

En fait, lorsque t1.start() est appelé, t1 est dans l'état prêt, mais dans la méthode principale, t1 est verrouillé par le thread principal. Lorsque t1.wait(), laisser le thread actuel attendre fait en fait. le thread principal attend. Ensuite, le verrou t1 est libéré, le thread t1 s'exécute, imprime l'appel t1 notify(), puis réveille le thread principal et se termine enfin

Parlons de la différence entre wait() ; et sleep(). Ce qu'ils ont en commun est de laisser le thread dormir, mais wait() libérera le verrou de synchronisation de l'objet, mais sleep() ne exécutera pas t2 jusqu'à la fin de t1 ;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal