中斷線程:Thread.sleep() 和 Thread.yield()
在線程體中調(diào)用Thread. sleep()時需要向括號內(nèi)傳入?yún)?shù):毫秒,一旦線程執(zhí)行了這方法則進(jìn)入休眠狀態(tài),不再運行程序并讓出cpu執(zhí)行時間。當(dāng)過了休眠時間后,線程并不會馬上進(jìn)入運行狀態(tài),而是進(jìn)入就緒狀態(tài)與其他線程搶占cpu執(zhí)行時間。
//定義用于實現(xiàn)接口Runnable的類class RunnableImp implements Runnable{//復(fù)寫Runnable唯一的方法runpublic void run(){for(int i = 0;i < 10; i++){System.out.class Test{public static void main(String args[]){//生成RunnableImp的對象RunnableImp ri = new RunnableImp();//將ri傳入,生成Thread對象Thread t = new Thread(ri);//調(diào)用Thread的start方法t.start();}}當(dāng)程序運行到i的值為5時,會停留3000毫秒后再繼續(xù)運行。
在線程體中調(diào)用Thread.yield()時,當(dāng)運行到這行代碼時,當(dāng)前線程自動讓步,不在占用cpu執(zhí)行時間進(jìn)入就緒狀態(tài),與其他線程再次搶占cpu執(zhí)行時間,并不能保證其他線程能被執(zhí)行。
設(shè)置線程的優(yōu)先級: getPriority() 和 setPriority()
class Test{public static void main(String args[]){RunnableImp ri = new RunnableImp(); Thread t = new Thread(ri); //獲取線程t的默認(rèn)優(yōu)先級System.out.println(t.getPriority());//設(shè)置線程的最大優(yōu)先級t.setPriority(Thread.MAX_PRIORITY);System.out.println(t.getPriority());//設(shè)置線程的最小優(yōu)先級t.setPriority(Thread.MIN_PRIORITY);System.out.println(t.getPriority());t.start();}}
線程的最大優(yōu)先級為10,最小優(yōu)先級為1,可以通過Thread提供的靜態(tài)常量來設(shè)置線程的優(yōu)先級。優(yōu)先級越高的線程執(zhí)行的概率就越大
新聞熱點
疑難解答