Différence entre le sommeil et l'attente Différence entre

Anonim

Sleep vs Wait

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. Cette langue est appelée langage de programmation.

Avant l'apparition des ordinateurs, les langages de programmation avaient déjà été utilisés dans les métiers à tisser et les pianos. Au fur et à mesure que l'utilisation de l'ordinateur devenait plus courante, plusieurs langages de programmation étaient utilisés.

Il existe plusieurs langages informatiques incluant des langages de haut niveau tels que: BASIC, C, C ++, Fortran, Pascal et Java. Chaque machine virtuelle et chaque processeur possède 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 améliorer ses performances et son utilité, en particulier lorsque plusieurs threads sont utilisés.

Les machines virtuelles, telles que la machine virtuelle Java, prennent en charge un concept multi-thread avec des threads de priorité supérieure exécutés en premier sur des threads de priorité inférieure assurant une répartition équitable du traitement du temps.

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 de thread sont les méthodes wait et sleep.

Ces deux méthodes sont séparées. La méthode sleep contrôle l'exécution du thread et retarde l'action suivante alors que la méthode wait ne contrôle pas l'exécution du thread pour laisser les autres threads s'exécuter.

La méthode wait est définie dans la classe Object et envoie le thread en cours à l'état non exécutable. Il est utilisé conjointement avec notify et notifyAll pour laisser temporairement le code d'exécution d'un objet et le reprendre plus tard.

Cela fonctionne en appelant un objet lock et en laissant le thread courant se synchroniser avec lui. Attendre libèrera le verrou et mettra le fil dans la liste d'attente et laissera les autres threads se synchroniser avec lui provoquant le réveil du fil d'origine. Le programmeur détermine l'heure précise à laquelle l'exécution recommence.

La méthode du sommeil, en revanche, est définie comme une méthode statique. Il retarde l'exécution des threads et non des objets et suspend le thread en cours d'exécution. Il envoie les threads actuels dans l'état non exécutable pendant un certain temps. Il peut affecter le comportement des applications multithread, car il conserve les verrous de synchronisation du thread en cours. Une fois que le thread est dans un bloc synchronisé, aucun autre thread ne peut entrer dans le bloc.

Résumé:

1. "Sleep" est une méthode de gestion de thread qui est définie comme une méthode statique tandis que "wait" est une méthode de gestion de thread qui est définie dans la classe Object.

2. Sleep est une méthode qui exécute des threads tandis que wait est une méthode qui exécute des objets.

3. Le mode Veille conserve les verrous de synchronisation du fil en cours et influe sur le comportement des applications, mais pas sur l'attente.

4. Sleep contrôle l'exécution du thread et n'autorise pas les autres threads dans un bloc synchronisé tandis que wait ne contrôle pas l'exécution du thread pour laisser les autres threads s'exécuter.