1.thread class
繼承thread類
-自定義執行緒類繼承thread類
-重寫run()方法,編寫執行緒執行體
-建立執行緒物件,呼叫start()方法啟動執行緒
不建議使用:避免oop單繼承侷限性
2.==runnable介面 ==
實現runnable介面
定義myrunnable類實現runnable介面
實現run()方法,編寫執行緒執行體
建立執行緒物件,呼叫start()方法啟動執行緒
建議使用:避免單繼承侷限性,靈活方便,方便同乙個物件被多個執行緒使用
與方法一的不同之處:
啟動方式不同:
繼承thread類:子類物件.start();
實現runnable介面:傳入目標物件+thread物件.start();
new
thread
(test)
.start()
;
模擬買票
public
class
testthread1
implements
runnable
//模擬延時
trycatch
(interruptedexception e)
system.out.
println
(thread.
currentthread()
.getname()
+"-->拿到了第"
+ticketnum--
+"票");
}}public
static
void
main
(string[
]args)
}
**執行後結果:
發現問題:多個執行緒操作同乙個資源的情況下,執行緒不安全,資料紊亂;
龜兔賽跑的例子
package com.wy1104thread2;
/*首先來個賽道距離,然後要離終點越來越近
判斷比賽是否結束
列印出勝利者
龜兔賽跑開始
兔子需要睡覺。模擬兔子睡覺
最終,烏龜贏得比賽*/
public
class
race
implements
runnable
catch
(interruptedexception e)
}//判斷比賽是否結束
boolean flag=
gameover
(i);
if(flag)
system.out.
println
(thread.
currentthread()
.getname()
+"跑了"
+i+"步");
}}//判斷是否完成比賽
private
boolean
gameover
(int steps)
}return
false;}
public
static
void
main
(string[
] args)
}
結果如下:
3.callable介面
實現callable介面
多執行緒 相關知識
多執行緒 目標程序 執行緒程序 對應的就是計算機中執行的應用程式 process p new process p.startinfo.filename notepad.exe p.start 通過例項物件來開啟記事本 process ps process.getprocesses foreach p...
執行緒程式設計相關知識
一 讀寫鎖 讀寫鎖 rwlock 功能特點簡介 讀寫鎖實際是一種特殊的 自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。這種鎖相對於 自旋鎖而言,能提高 併發性,因為在 多處理器系統中,它允許同時有多個讀者來訪問共享資源,最大可能的讀者數為...
Java多執行緒之實現方式
1.方式 繼承thread類,實現runnable介面。2.啟動方式 start方法 申請新執行緒來執行run方法 run方法 在原來執行緒執行run方法,普通的方法呼叫 3.舉例 繼承thread類 class threadthread extends thread 實現runnale介面 cla...