1. 程式人生 > >多執行緒基礎入門

多執行緒基礎入門

1.執行緒和程序和程式

程式:多個程序的集合(一個程式至少一個程序)

程序:執行緒的集合(一個程序至少一個執行緒)

執行緒:一個執行路徑

2.什麼是執行緒安全問題

   當兩個或者多個執行緒共享一個全域性變數對其做寫的操作的時候,結果可能出現誤差.

3.多執行緒之間同步

1)同步程式碼塊:

就是被包裹的程式碼只能有一個執行緒進入

synchronized(鎖){

程式碼

}

2).同步函式 

在方法上加上synchronized 就是同步函式 

public   synchronized   方法返回型別  方法名字()

{

程式碼

}

3. lock鎖

Lock lock  = new ReentrantLock();

lock.lock();

try{

//可能會出現執行緒安全的操作

}finally{

//一定在finally中釋放鎖

//也不能把獲取鎖在try中進行,因為有可能在獲取鎖的時候丟擲異常

  lock.ublock();

}

 

3.多執行緒死鎖

同步中巢狀同步,導致鎖沒法釋放,產生死鎖.

4.多執行緒三大特性: 

1)原子性:  就是程式的完整性,要麼做完這個事情,要麼就不做,不能做一半不做。

2)可見性:Java記憶體模型中的本地記憶體能否通訊。

3)有序性:程式執行的順序按照程式碼的先後順序執行。

5守護執行緒和非守護執行緒:

Java中有兩種執行緒,一種是使用者執行緒,另一種是守護執行緒。

 使用者執行緒是指使用者自定義建立的執行緒,主執行緒停止,使用者執行緒不會停止

守護執行緒當程序不存在或主執行緒停止,守護執行緒也會被停止。

6.多執行緒執行狀態  

新建  就緒  阻塞 執行   死亡