java yield()和sleep()的區別
區別
1、sleep()會導致當前執行緒暫停指定的時間,沒有CPU時間片的消耗
2、yield()只是對CPU排程器的一個提示,如果CPU排程器沒有忽略這個提示,會導致執行緒上下文的切換
sleep()會使執行緒短暫阻塞,在給定時間內釋放CPU資源
如果yield()生效,yield()會使得從RUNNING狀態進入RUNNABLE狀態
sleep()會幾乎百分百地完成給定時間的休眠,但是yield()的提示不一定能擔保
一個執行緒呼叫sleep()而另一個執行緒呼叫interrupt()會捕獲到中斷訊號,而yield則不會
例項
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(); } }
以上就是java yield()和sleep()的區別,希望對大家有所幫助。更多Java學習指路:
本教程操作環境:windows7系統、java10版,DELL G3電腦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/75/viewspace-2829559/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 請教sleep()與yield()的區別
- java執行緒中yield(),sleep(),wait()區別詳解Java執行緒AI
- java之yield(),sleep(),wait()區別詳解-備忘筆記JavaAI筆記
- windows執行緒yield以及Sleep(0)和SwitchToThread之間的區別Windows執行緒thread
- 【Java】sleep和wait區別總結JavaAI
- yield next和yield* next的區別
- Java_Thread類的sleep()與SystemClock類的sleep()的區別Javathread
- linux的sleep()和usleep()的使用和區別Linux
- Python教程:return和yield的區別Python
- Thread 的sleep、wait、yield、interruptthreadAI
- Thead物件的sleep方法,和yield方法有何區別,為什麼實現的執行緒中,在run方法中要呼叫sleep方法?物件執行緒
- 併發程式設計——執行緒中sleep(),yield(),join(),wait(),notify(),notifyAll()區別程式設計執行緒AI
- Java執行緒中yield與join方法的區別Java執行緒
- 一張圖搞清楚wait、sleep、join、yield四者區別,面試官直接被征服!AI面試
- Linux作業系統 sleep(0)、sleep(1)和sleep(-1)的區別,他們各有什麼作用Linux作業系統
- 執行緒狀態&&Wait和sleep的區別?執行緒AI
- sleep與 wait區別AI
- yield self和instance_eval用法區別
- Enumerator yielder.yield 與 Proc.yield 區別
- C# suspend sleep join 區別C#
- 【Java】equals 和 == 的區別Java
- Java和Javascript的區別JavaScript
- java和html的區別JavaHTML
- 執行緒篇2:[- sleep、wait、notify、join、yield -]執行緒AI
- Java 併發程式設計:執行緒間的協作(wait/notify/sleep/yield/join)Java程式設計執行緒AI
- java 中equals和==的區別Java
- ArrayList 和 Vector 的區別 -JAVAJava
- Java中equals和==的區別Java
- java堆和棧的區別Java
- JavaScript和Java的區別(轉)JavaScript
- java中的==和equal的區別Java
- Java中Vector和ArrayList的區別Java
- Java之for(;;)和while(true)的區別JavaWhile
- 【Java面試】@Resource 和 @Autowired 的區別Java面試
- Java中 equals() 方法和 == 的區別Java
- 對於java中的"\"和"/" 區別Java
- 在java中“equals”和“==”的區別Java
- Java中throw和throws的區別Java