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

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

王林
王林avant
2023-05-07 21:55:061474parcourir

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();
}
}

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer