1. 程式人生 > >Thread--執行緒休眠sleep

Thread--執行緒休眠sleep

sleep()的作用是讓當前執行緒進入休眠,當前執行緒會由執行狀態進入到阻塞狀態,sleep()可以指定休眠時間,休眠時間會大於等於該休眠時間,線上程被重新喚醒時,執行緒的狀態由阻塞狀態變成就緒狀態,從而等待CPU進行排程執行。

示例程式碼:

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();
    }
} 
sleep() 和wait()的作用是讓執行緒由執行狀態進入阻塞狀態,但sleep()不會釋放物件的鎖,wait()會釋放物件的同步鎖。