Différence entre le sommeil et l’attente
Dormir ou attendre
Les machines comme les ordinateurs utilisent un langage artificiel pour créer des programmes, les contrôler et leur permettre de communiquer des instructions et d'exprimer des algorithmes. Ce langage est appelé langage de programmation.
Avant l'avènement des ordinateurs, les langages de programmation étaient déjà utilisés dans les métiers à tisser et les pianos. L'utilisation de l'ordinateur devenant de plus en plus courante, plusieurs langages de programmation étaient maintenant utilisés.
Il existe plusieurs langages informatiques, y compris des langages de haut niveau tels que : BASIC, C, C, C+++, Fortran, Pascal et Java. Chaque machine virtuelle et CPU a son propre langage informatique, chacun avec ses propres faiblesses et forces, et chaque machine virtuelle exécute un thread au démarrage. Ce thread exécute le code de l'application dans le programme. Il peut accélérer l'exécution d'un programme et en améliorer les performances et l'utilité, en particulier lorsque plusieurs threads sont utilisés.
Les machines virtuelles, telles que la machine virtuelle Java, prennent en charge un concept de multi-threading avec des threads de priorité plus élevée exécutés en premier lieu sur des threads de priorité plus faible, assurant une répartition équitable du temps de traitement.
Il utilise des méthodes de gestion de threads qui peuvent créer, contrôler et terminer le flux de contrôles ou de threads dans un espace partagé. Deux de ces méthodes de gestion des threads sont l'attente et le sommeil.
Ces deux méthodes sont distinctes. La méthode sleep contrôle l'exécution du thread et retarde l'action suivante tandis que la méthode wait ne contrôle pas l'exécution du thread pour laisser tourner les autres threads.
La méthode wait est définie dans la classe Object et envoie le thread courant dans l'état non exécutable. Il est utilisé avec les méthodes notify et notifyAll pour laisser le code d'exécution d'un objet s'arrêter temporairement et le reprendre plus tard.
Il fonctionne en appelant un objet lock et en laissant le thread courant se synchroniser avec lui. L'attente libère le verrou et met le fil dans la liste d'attente et permet à d'autres fils de se synchroniser avec lui, ce qui provoque le réveil du fil d'origine. Le programmeur détermine l'heure spécifique à laquelle l'exécution redémarre.
La méthode du sommeil, par contre, est définie comme une méthode statique. Il retarde l'exécution des threads et non des objets ainsi que la suspension du thread en cours d'exécution. Il envoie les threads en cours dans l'état non exécutable pendant un certain temps. Il peut affecter le comportement des applications qui sont multi-threadées car il maintient les verrous de synchronisation du thread courant. Une fois que le filet est dans un bloc synchronisé, aucun autre filet ne peut entrer dans le bloc.
Les idées Clis
"Sleep" est une méthode de gestion de threads qui est définie comme méthode statique tandis que "wait" est une méthode de gestion de threads qui est définie dans la classe Object.
Sleep est une méthode qui exécute des threads tandis que wait est une méthode qui exécute des objets.
Le mode veille maintient les verrouillages de synchronisation du thread courant et influence le comportement des applications alors que l'attente n'a pas lieu.
Sleep contrôle l'exécution du thread et n'autorise pas les autres threads dans un bloc synchronisé alors que wait ne contrôle pas l'exécution du thread pour laisser les autres threads tourner.
Une question ? Nous avons oublié quelque chose ? n'hésitez pas à participer aux commentaires. Nous compléterons cet article avec plaisir.