黑馬程式設計師 Java 多執行緒

2021-06-20 02:40:47 字數 2233 閱讀 9979

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流!----------------------

一.執行緒的定義:

1:就是應用程式有多條執行路徑。

程序:就是正在執行的程式。

執行緒:就是程序的執行路徑,執行單元。

2.執行緒與程序的區別:

乙個程式啟動至少會有乙個程序, 而乙個程序中至少有乙個執行緒.

執行緒是程序的乙個實體,是cpu排程和分派的基本單位.

3:如何使用多執行緒程式:

a:方式1 繼承thread類。

a:建立類繼承thread類

b:重寫thread類的run()方法。

run()方法裡面才是封裝執行緒的**。

c:通過呼叫start()方法啟動執行緒並呼叫run()方法。

**體現:                                  

public class mythread extends thread}}

public mythreadtest

}b:方式2 實現runnable介面

a:建立乙個類實現runnable介面

b:重寫run()方法

c:建立實現類物件,並把它作為引數傳遞給thread類的構造方法,建立thread物件

d:通過thread的物件執行

**體現:

public class myrunnable implements runnable}}

public class myrunnabletest

}4:執行緒的隨機性原理:

多個程式其實是cpu的在做著高效切換執行的。

5.執行緒與程序的區別:

乙個程式啟動至少會有乙個程序, 而乙個程序中至少有乙個執行緒.

執行緒是程序的乙個實體,是cpu排程和分派的基本單位.

6.常用方法:

start() 啟動執行緒, 執行run()方法

sleep(int ms) 當前執行緒休眠, 單位為毫秒

currentthread() 獲取當前執行緒

getname() 獲取執行緒的名字, main()方法會在main()執行緒中執行, 新啟動的執行緒如果沒指定名字會以 thread-編號 形式命名

setname(string name) 設定執行緒的名字

setdaemon() 將執行緒設定為守護執行緒. 守護執行緒不會單獨執行. 如果程式執行時有非守護執行緒在執行, 程式不會結束

join() 加入執行緒, 在當前執行緒中加入乙個執行緒, 當前執行緒等待加入的執行緒執行結束之後繼續執行.

二.同步

1.什麼是同步

多執行緒併發訪問, 產生延遲的時候, 會出現執行緒安全問題. 為了解決安全問題, 我們就需要使用同步.

2.怎麼同步

(a).同步**塊

使用synchronized關鍵字鎖定乙個**塊, 指定鎖旗標, 就可以將**同步了. 

在乙個執行緒進入同步**之後, 其他使用相同鎖旗標的執行緒不能再執行, 直到第乙個執行緒執行結束, 其他執行緒才能執行.

使用同乙個鎖旗標的同步**, 只能有乙個執行緒執行.

( b).同步方法

在方法宣告上使用synchronized關鍵字修飾, 那麼整個方法都是同步的.

同步方法使用this作為鎖

3.死鎖

在同步**塊巢狀的時候, 使用不同的鎖時, 需要注意死鎖的問題, 不要造成衝突.

三.執行緒之間的通訊

1.什麼是通訊

在多執行緒併發的時候, 使用同步**塊時, 可以使用wait()和notify()方法控制線程通訊.

2.api

wait() 使執行緒等待, 直到有人喚醒.

notify() 喚醒等待的乙個執行緒, 隨機的.

四.jdk5中的執行緒處理

1.同步

lock lock = new reentrantlock();

使用lock.lock()來開始同步

使用lock.unlock()結束同步, 注意解鎖的**放在finally中

2.通訊

在jdk1.4之前使用的是鎖旗標物件的wait和notify來通訊, 他們的缺點是無法準確的喚醒乙個等待的執行緒.

而在jdk5之後, 使用condition, 可以針對不同的分支喚醒.  await()和signal()

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流!---------------------- 

黑馬程式設計師 多執行緒

windows phone 7手機開發 net培訓 期待與您交流!一 程序與執行緒 l 程序 乙個執行的程式就是乙個程序,程序包括執行中的程式和程式需要用到的記憶體和系統資源 乙個程序至少有乙個執行緒,乙個程序中多個執行緒可以併發執行 l 執行緒 程式中的乙個執行流,每個執行緒都有自己的專有暫存器 ...

黑馬程式設計師 多執行緒

asp.net android io開發 net培訓 期待與您交流!執行緒與程序的關係 乙個程式就相當於乙個程序 乙個程序至少有乙個執行緒 同乙個程序中的多個執行緒之間可以 併發 執行 執行緒 1 乙個執行緒一次只能完成乙個任務 2 多執行緒方法重入 cpu是不斷的在多個執行緒之間來回切換執行的 3...

黑馬程式設計師 多執行緒

asp.net android ios開發 net培訓 期待與您交流!多執行緒為什麼要用多執行緒?1 讓計算機 同時 做多件事情,節約時間。2 後台執行程式,提高程式的執行效率,也不會使主介面出現無響應的情況。3 多執行緒可以讓乙個程式 同時 處理多個事情。4 計算機cpu 大部分時間處於空閒狀態,...