執行緒
1.執行緒的開啟方式–三種
2.執行緒的狀態 --五種
3.鎖同步
4.執行緒通訊
多執行緒:多工同時執行就是多執行緒,如果沒有任務,就不需要使用多執行緒
執行緒和程序之間的區別:
程序:資源分配的最小單位
執行緒:cpu排程的最小單位
乙個程序可以包含1~n個執行緒
開啟執行緒的第三種方式:
1.繼承thread類,重寫run()方法
建立子類物件,呼叫start()方法,開啟多執行緒
2.實現runnable介面,重寫run()方法 **
3.實現callable介面,重寫call()方法
實現runnable方法:重寫run()方法 **
開啟執行緒: thread類做**,呼叫thread類中的start方法開啟執行緒
優點:
避免了單繼承的侷限性
實現資源共享
實現callable介面,重寫call()方法
優點:可以有返回值,可以丟擲異常
缺點:使用複雜
檢視執行緒的狀態:
thread.state getstate() 返回該執行緒的狀態。
執行緒優先順序:
void setpriority(int newpriority) 更改執行緒的優先順序。
int getpriority() 返回執行緒的優先順序
1~10表示 1是最小 10是最大 預設是5
min_priority 最小
norm_priority 預設
max_priority 最大
3.sleep、yield、join方法的區別?
sleep()方法
sleep()方法需要制定等待的時間,它可以讓當前正在執行的執行緒在指定的時間內暫停執行進入阻塞狀態,同、高、低優先順序因此都有了進入程式的機會,但sleep()方法不釋放鎖標識
yield()方法
yield()方法不會釋放鎖標誌,與sleep()方法類似,但其無參,即yield只是使當前執行緒重回可執行狀態,所以執行yield的執行緒有可能在進入到可執行狀態後 馬上被執行 同、高優先順序執行緒有可執行的機會
join()方法
package jsh.test;
public class joinmethod catch (interruptedexception e)
} }}}
class joindemo implements runnable
}package jsh.test.thread01;
/*鎖 塊 控制線程安全
鎖this就是鎖物件,所物件會鎖住這個物件中的所有成員(資源),如果只想鎖住其中的某個資源,可以只鎖這個資源
多個執行緒同時操作同乙份資源的時候,可能會發生執行緒不安全問題
控制線程安全:加鎖 synchronized 同步
同步方法: 在方法上面加鎖
同步靜態方法
同步成員方法
同步塊: synchronized(){}
鎖this,鎖資源,鎖類
鎖的必須是不變的內容
鎖的範圍太大,效率低,鎖的範圍太小,容易鎖不住
單例:懶漢式是執行緒不安全的
JAVASE入門基礎知識整理筆記篇(九)
異常 throwable類 error exception unchecked checked runtime exception exception exception error 這類錯誤不需要程式設計師管理 exception 異常 檢查時異常 編譯時異常 如果程式一旦出現檢查時異常,程式必須...
JAVASE入門基礎知識整理筆記篇(十一)
位元組輸出流 outputstream 此抽象類是表示輸出位元組流的所有類的超類 fileoutputstream檔案輸出流是用於將資料寫入 file 嘗試 檔案的拷貝 資料來源 程式 目的地 io 目的 讀寫檔案中的內容 流 一連串流動的資料,先進先出的方式傳輸資訊,管道 資料來源 目的地 以程式...
基礎知識整理
1.在輸出字元變數的值時,可以選擇以十進位制整數形式輸出,或以字元形式輸出。2.在乙個整數的末尾加大寫字母l或小寫字母l,表示它是長整型。3.代表除法運算子,兩個實數相除的結果是雙精度實數。兩個整數相除的結果是整數,捨去小數部分。但是,如果除數或被除數中有乙個是負值,則捨入的方向是不固定的。多數c編...