您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關java中yield()和sleep()的區別有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
1、區別
sleep()會導致當前線程暫停指定的時間,沒有CPU時間片的消耗
yield()只是對CPU調度器的一個提示,如果CPU調度器沒有忽略這個提示,會導致線程上下文的切換
sleep()會使線程短暫阻塞,在給定時間內釋放CPU資源
如果yield()生效,yield()會使得從RUNNING狀態進入RUNNABLE狀態
sleep()會幾乎百分百地完成給定時間的休眠,但是yield()的提示不一定能擔保
一個線程調用sleep()而另一個線程調用interrupt()會捕獲到中斷信號,而yield則不會
2、實例
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()的區別有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。