一、程序是一段靜態的代碼,進程是程序的一次動態執行過程html
二、線程比進程還小,一個進程的進行期間能夠產生多個線程。mysql
三、Java內置對多線程的支持。咱們的計算機在任何給定說的時刻只能執行線程中的一個,Java虛擬機只是從一個線程迅速地切換到另外一個線程。git
四、線程的狀態與生命週期:(1)新建;(2)運行;(3)中斷;(4)死亡;sql
五、線程的經常使用方法多線程
start()
方法:只有新建立的線程才能夠調用該方法。學習
run()
方法:該方法是否運行結束是判斷線程是否結束的一個重要標準。只有當該方法運行結束後,線程才能再次調用start()方法。.net
sleep(int millsecond)
方法:線程能夠調用該方法來使程序進入睡眠,知道過了參數指定的秒數事後才「醒來」。該方法必須在try-catch
語句中調用,由於線程若是在休眠中被打斷,會拋出InterruptedException
異常。線程
isAlive()
方法:該方法用來判斷線程是否正在運行,如果,返回true,若不是,返回false
。注意,一個已經運行的線程在沒有進入死亡狀態時,不要再給線程分配實體。code
currentThread()
方法是Thread類中的類方法,返回當前使用CPU的線程。htm
interrupt()
方法用來「喚醒」調用sleep方法而處於睡眠狀態的線程。
六、守護線程:線程默認是非守護線程,線程在運行以前必須設置本身是否爲守護線程。能夠調用voidsetDaemon(boolean on)來將本身設置成一個守護線程。當全部非守護線程運行結束時,守護線程必定會跟着結束。
參考連接:mysql服務裏面沒有啓動項
我使用net start mysql
命令之後出現如下結果,成功啓動mysqld.exe,在任務管理器的截圖如圖所示。
進程的三種基本狀態是:就緒、執行、阻塞,這一點有別於線程;
參考連接進程三種基本狀態
在Java中建立線程有兩種方法:使用Thread類和使用Runnable接口。
public Thread( ); public Thread(Runnable target); public Thread(String name); public Thread(Runnable target, String name); public Thread(ThreadGroup group, Runnable target); public Thread(ThreadGroup group, String name); public Thread(ThreadGroup group, Runnable target, String name); public Thread(ThreadGroup group, Runnable target, String name, long stackSize);
參考連接Thread的構造方法
參考連接線程的中斷-----使用線程對象的interrupt()方法
線程使用interrupt()方法,同時程序拋出InterruptedException異常.