Java Thread之Sleep 使用方法總結

2021-08-31 16:11:20 字數 1378 閱讀 3672

thread.sleep()是thread類的乙個靜態方法,使當前執行緒休眠,進入阻塞狀態(暫停執行),如果執行緒在睡眠狀態被中斷,將會丟擲iterruptedexception中斷異常。。主要方法如下:

【a】sleep(long millis)  執行緒睡眠 millis 毫秒

【b】sleep(long millis, int nanos)  執行緒睡眠 millis 毫秒 + nanos 納秒

api文件:

注意:在哪個執行緒裡面呼叫sleep()方法就阻塞哪個執行緒。

public class sleepdemo 

}}/**

* 執行緒類

*/class process implements runnable catch (interruptedexception e) }}

}

執行結果:main執行緒執行一次之後休眠一秒鐘,讓出cpu,此時process執行緒執行一次然後又休眠一秒,依次執行。

下面以乙個倒計時的功能來進一步說明sleep()方法的使用:

/**

* @description: 執行緒休眠sleep()方法

* @author: weishihuai

* @date: 2018/11/11 21:31

* * 1. 注意:sleep()方法使用的位置,如果使用在main執行緒執行**中,則阻塞的是main執行緒。如果在其他執行緒執行的**中,則阻塞的是執行這些**的執行緒

* 2. 案例: 倒計時功能

*/public class testsleepthread

/*** 倒計時方法

** @param mills 倒計時開始的時間距離當前時間多少毫秒

*/public static void countdown(long mills) catch (interruptedexception e)

if (endtime - enddate.gettime() > mills) }}

}

執行結果:

【a】sleep()方法是thread類的靜態方法,如果呼叫執行緒物件.sleep()方法並不是該執行緒就休眠,反正在哪乙個執行緒裡面執行了sleep()方法哪乙個執行緒就休眠。

【b】執行緒睡眠到期自動甦醒,並返回到可執行狀態(就緒),不是執行狀態。

java Thread 執行緒同步之互斥(1)

public class synchthread class ticket ticket class productor extends thread public void run public void run while i 學習心得 1.用多個執行緒處理乙個物件,實現執行緒共享 2.關鍵字s...

java thread自學筆記

執行緒有多種寫法。第一種是實現runnable介面。第二種是繼承thread類。第三種是直接寫runnable的實現方法。public class threadtest thread t new thread r t.run output foo t.start output foo try cat...

Java Thread相關(積累)

threadgroup 執行緒組就是由執行緒組成的管理執行緒的類 thread.currentthread getthreadgroup getname currentthread 取得當前執行緒。getthreadgroup 取得當前執行緒所在的組。getname 取得組的名稱。定義乙個執行緒組,...