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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Java】sleep和wait區別總結JavaAI
- sleep()和wait()區別AI
- Python教程:return和yield的區別Python
- Task.Delay 和 Thread.Sleep 的區別thread
- 併發程式設計——執行緒中sleep(),yield(),join(),wait(),notify(),notifyAll()區別程式設計執行緒AI
- 一張圖搞清楚wait、sleep、join、yield四者區別,面試官直接被征服!AI面試
- 執行緒篇2:[- sleep、wait、notify、join、yield -]執行緒AI
- 【Java】equals 和 == 的區別Java
- java 中equals和==的區別Java
- Java之InetSocketAddress和SocketAddress的區別Java
- Java之.class和.getClass()的區別Java
- Java之for(;;)和while(true)的區別JavaWhile
- Java中 equals() 方法和 == 的區別Java
- Java中Vector和ArrayList的區別Java
- PHP, Python和Java的區別分享PHPPythonJava
- Java基礎- ==和equals和hashCode的區別Java
- java中==和equlas區別Java
- java:Date和DateTime區別Java
- 多執行緒面試題之sleep()和wait()方法有什麼區別?執行緒面試題AI
- Java String.valueOf 和 toString的區別Java
- 【Java面試】@Resource 和 @Autowired 的區別Java面試
- Python和Java的區別?看完秒懂!PythonJava
- JAVA 中interface 和 abstract 區別Java
- java中size()和length區別Java
- 「每天一道面試題」sleep方法和wait方法有什麼區別?面試題AI
- Java(3)-POJO和Java bean的區別是什麼JavaPOJOBean
- Java之try-catch和throws的區別Java
- Java開發和Android開發的區別JavaAndroid
- 閒說: Java 中Comparable 和 Comparator 的區別Java
- java複習之HashMap和Hashtable的區別JavaHashMap
- java-介面和抽象類的聯絡和區別。Java抽象
- java中Scanner類nextLine()和next()的區別和使Java
- 關於java的引用和c++的區別JavaC++
- ../和./和/的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- Java之Thread類的常用方法 .sleep()Javathread
- java,javac,java -version的區別Java