Maison  >  Article  >  Java  >  La différence entre dormir et attendre en JAVA

La différence entre dormir et attendre en JAVA

(*-*)浩
(*-*)浩original
2019-12-26 11:53:482575parcourir

La différence entre dormir et attendre en JAVA

La méthode wait() signifie que le thread actuel s'autorise à abandonner temporairement le verrou de la ressource de synchronisation afin que les autres threads en attente de la ressource puissent obtenir la ressource et s'exécuter uniquement. lorsqu'elle est appelée méthode notify(), le thread qui appelait précédemment wait() sera libéré de l'état d'attente et pourra participer à la compétition pour le verrouillage des ressources de synchronisation, puis être exécuté.

La méthode sleep() peut être utilisée n'importe où ; la méthode wait() ne peut être utilisée que dans les méthodes synchronisées ou les blocs synchronisés (Apprentissage recommandé : cours java )

sleep() est une méthode de la classe thread (Thread). L'appel suspendra le thread pendant la durée spécifiée, mais la surveillance sera toujours maintenue, le verrou de l'objet ne sera pas libéré et il reprendra automatiquement lorsque le temps sera écoulé ;

wait() est une méthode d'Object. L'appel abandonnera le verrouillage de l'objet et entrera dans la file d'attente. Il n'entrera pas dans le pool de verrouillage avant notify()/. notifyAll() est appelé pour réveiller le thread spécifié ou tous les threads. Il n'entrera pas tant que le verrouillage de l'objet n'est pas obtenu à nouveau

Le diagramme du cycle de vie des threads en Java est le suivant : :

La différence entre dormir et attendre en JAVA

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