Unterschiede
1. Sleep() führt dazu, dass der aktuelle Thread für die angegebene Zeit angehalten wird, ohne CPU-Zeitscheiben zu verbrauchen
2. yield() ist nur eine Eingabeaufforderung an den CPU-Scheduler, wenn der CPU-Scheduler dies nicht ignoriert Diese Eingabeaufforderung führt zu einem Thread-Kontextwechsel.
sleep() führt dazu, dass der Thread kurzzeitig blockiert und innerhalb einer bestimmten Zeit CPU-Ressourcen freigibt.
Wenn yield() wirksam wird, sorgt yield() dafür, dass er aus dem Status RUNNING in den Status RUNNABLE übergeht state
sleep() Der Schlaf für eine bestimmte Zeit wird zu fast 100 % abgeschlossen, aber die Eingabeaufforderung yield() garantiert nicht unbedingt, dass
Ein Thread, der sleep() aufruft, und ein anderer Thread, der interrupt() aufruft, das Interrupt-Signal abfangen. aber yield wird nicht
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(); } }
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen yield() und sleep() in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!