Maison  >  Article  >  Java  >  Quelle est la différence entre les méthodes wait() et join() en Java

Quelle est la différence entre les méthodes wait() et join() en Java

青灯夜游
青灯夜游original
2018-12-14 15:28:399483parcourir

La différence entre les méthodes wait() et join() en Java est qu'elles existent dans différents packages Java ; la méthode wait() est utilisée pour la communication inter-thread, et le thread dans l'état d'attente qu'elle impose peut être démarré ; la méthode join() Utilisée pour ajouter un ordre entre plusieurs threads, l'attente qu'elle impose ne peut pas être interrompue.

Quelle est la différence entre les méthodes wait() et join() en Java

La méthode wait() en java

La fonction de la méthode wait() est de laisser le thread actuel Pour entrer dans l'état d'attente, wait() sera utilisé avec les méthodes notify() et notifyAll().

Les méthodes notify() et notifyAll() sont utilisées pour réveiller les threads en attente. La méthode notify() : réveille un seul thread, et la méthode notifyAll() : réveille tous les threads.

La méthode join() en java

La méthode join() attend la fin de ce thread et termine son exécution. Sa fonction principale est de synchroniser, en changeant l'exécution entre les threads de "parallèle" à "série".

C'est-à-dire que lorsque nous appelons la méthode join() du thread B dans le thread A, le processus d'exécution du thread change : le thread A doit attendre que le thread B termine son exécution avant de pouvoir continuer son exécution.

Similarités entre les méthodes wait() et join()

1 Les méthodes wait() et join() sont toutes deux utilisées pour les pauses. Le thread actuel en Java entre dans l'état d'attente.

2. En Java, vous pouvez appeler la méthode interruption() pour interrompre l'état du thread de wait() et join().

3. wait() et join() sont toutes deux des méthodes non statiques.

4. wait() et join() sont tous surchargés en Java. wait() et join() n'ont pas de délai d'attente mais acceptent un paramètre de délai d'attente.

Bien que la méthode wait() et la méthode join() soient similaires, il existe des différences entre la méthode wait() et la méthode join().

La différence entre la méthode wait() et la méthode join()

Quelle est la différence entre les méthodes wait() et join() en Java

1 , il existe différents packages Java (la différence la plus évidente)

La méthode wait() doit être déclarée dans la classe java.lang.Object et la méthode join() est en java ; . Déclaré dans la classe lang.Thread.

2. Différents objectifs d'utilisation

La méthode wait() est utilisée pour la communication inter-thread et la méthode join() est utilisée pour ajouter un tri entre plusieurs ; threads. Les deux threads doivent terminer leur exécution avant que le premier thread puisse commencer à s'exécuter.

3. Différences dans le réveil des threads

Nous pouvons démarrer un thread qui entre dans l'état d'attente via la méthode wait() en utilisant notify() et notifyAll( ) méthodes. Mais nous ne pouvons pas rompre l'attente imposée par la méthode join() à moins que le thread qui a interrompu la connexion ait fini de s'exécuter.

4. Contexte de synchronisation (la différence la plus importante)

La méthode wait() doit être appelée à partir d'un contexte synchronisé, c'est-à-dire un bloc ou une méthode synchronisée, sinon, il lancera IllegalMonitorStateException.

Cependant, nous pouvons appeler la méthode join() avec ou sans contexte synchronisé en Java.

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

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!

Déclaration:
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