Maison > Java > javaDidacticiel > Quelle est la différence entre rendement() et sleep() en Java ?

Quelle est la différence entre rendement() et sleep() en Java ?

王林
Libérer: 2023-05-07 21:55:06
avant
1589 Les gens l'ont consulté

Différences

1. sleep() entraînera une pause du thread actuel pendant la durée spécifiée sans consommer de tranches de temps CPU

2. rendement() est juste une invite au planificateur de processeur, si le planificateur de processeur n'ignore pas. cette invite entraînera un changement de contexte du thread

sleep() entraînera un blocage bref du thread et libérera des ressources CPU dans un délai donné

Si rendement() prend effet, rendement() le fera entrer dans l'état RUNNABLE à partir de RUNNING state

sleep() La mise en veille pendant un temps donné sera presque terminée à 100 %, mais l'invite rendement() ne garantit pas nécessairement qu'un thread appelant sleep() et un autre thread appelant interrompu() capteront le signal d'interruption, mais rendement ne sera pas

Instances

package cn.hanquan.test;
/*
 * sleep模拟倒计时,每一秒减一
 */
public class Lambda {
public static void main(String[] args) {
 
// Labmda表达式
new Thread(() -> {
for (int i = 0; i < 100; i++) {
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
Copier après la connexion

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:yisu.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