Thread--執行緒休眠sleep
阿新 • • 發佈:2019-01-01
sleep()的作用是讓當前執行緒進入休眠,當前執行緒會由執行狀態進入到阻塞狀態,sleep()可以指定休眠時間,休眠時間會大於等於該休眠時間,線上程被重新喚醒時,執行緒的狀態由阻塞狀態變成就緒狀態,從而等待CPU進行排程執行。
示例程式碼:
sleep() 和wait()的作用是讓執行緒由執行狀態進入阻塞狀態,但sleep()不會釋放物件的鎖,wait()會釋放物件的同步鎖。class ThreadA extends Thread{ public ThreadA(String name){ super(name); } public synchronized void run() { try { for(int i=0; i <10; i++){ System.out.printf("%s: %d\n", this.getName(), i); // i能被4整除時,休眠100毫秒 if (i%4 == 0) Thread.sleep(100); } } catch (InterruptedException e) { e.printStackTrace(); } } } public class SleepTest{ public static void main(String[] args){ ThreadA t1 = new ThreadA("t1"); t1.start(); } }