java中控制線程的手段有:1.join()方法;2.sleep()方法;3.守護線程;4.改變線程的優先級;
java中控制線程的手段有以下幾種
1.join()方法
java中join()方法的作用是讓一個線程等待另一個線程完成,可以在通過一個線程中調用其他線程的join()方法,調用線程被阻塞,需要等待join線程執行完畢,才可以再次調用線程。
//等待線程消亡
public final void join()
//等待線程消亡,最多等millis毫秒。
public final synchronized void join(long millis)
2.sleep()方法
java中sleep()方法的作用是使用線程進入阻塞狀態,即使當前cpu閑置,線程也會進入阻塞狀態。
//讓當前線程暫停millis毫秒,并進入阻塞。
public static native void sleep(long millis)
//讓當前線程暫停millis毫秒+nanos納秒,并進入阻塞
public static void sleep(long millis, int nanos)
3.守護線程
java中守護線程是指在后臺運行的線程,其目的是為其他線程提供服務,可以使用t.setDaemon(true)函數設置守護線程。
//設置為守護線程
t.setDaemon(true);
//啟動守護線程
t.start();
//主線程睡眠100毫秒
Thread.sleep(100);
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()+" : "+i);
}
}
4.改變線程的優先級
java中每個線程在執行時都具有優先級,且默認優先級與創建它的父線程的優先級相同,默認情況下,main線程具有普通優先級。
//線程可有的最小優先級
public final static int MIN_PRIORITY = 1;
//默認優先級
public final static int NORM_PRIORITY = 5;
//線程可有的最大優先級
public final static int MAX_PRIORITY = 10;