Java多線程學習總結(一)
一、線程的基本概念
簡單的說:線程就是一個程序里不同的執行路徑,在同一個時間點上cpu只會有一個線程在執行,Java里的多線程是通過java.lang.Thread類來實現的,每個線程都擁有自己獨立的方法棧空間。
二、java線程的創建和啟動
***種
定義線程類實現Runnable接口:
Thread myThread = new Thread(target) //target為Runnable接口類型
Runnable中只有一個方法:
public void run();用以定義線程運行體
第二種
可以定義一個Thread的子類并重寫其run方法:
clas MyThread extends Thread{
public void run(){}
}
線程類必須通過執行Thread的start()方法啟動一個新的線程,如果調用run()方法是屬于方法的調用,不會啟動一個新的線程,推薦使用***種方式創建線程,使用接口較為靈活。
三、線程狀態裝換
調用線程start()方法時,線程進入就緒狀態,Cpu分配時間片,線程進入運行狀態,時間片結束,run()方法未執行完,線程進入阻塞狀態。
四、線程控制基本方法
isAlive() //判斷線程是否還“活著”,即線程是否還未終止
getPriority() //獲得線程的優先級數值
setPriority() //設置線程的優先級指數
Thread.sleep() //靜態方法,將當前線程睡眠指定毫秒數
join() //調用某線程的該方法,將當前線程與該線程合并,
//即等待該線程結束,再回復當前線程的運行。
yield() //讓出CPU,當前線程進入就緒狀態等待調度
interrupt() //中斷線程
wait() //當前線程進入對象的wait pool
notify()/all //喚醒對象的wait pool中的一個/所有等待線程
五、sleep方法
Thread的靜態方法
public static void sleep(long millis)throws InterruptedException
必須對異常進行捕捉
Thread.currentThread(); //拿到當前線程
【編輯推薦】