程式:program,是乙個靜態概念;指令集
程序:process,是乙個動態概念;由作業系統排程程式
執行緒:thread,是程序中乙個「單一的連續控制流程」;在程序內多條執行路徑;是乙個輕量級的執行緒
(一)繼承至thread,重寫run()方法
使用執行緒:
1. 建立子類物件
2. 呼叫start()方法,啟動執行緒
以龜兔賽跑為例
1. 建立兩個執行緒
public class rabbit extends thread }}
class tortoise extends thread
}}
2. 測試類
public static void main(string args) }}
3. 執行結果
在上面的程式中,共有三個執行緒:兔子執行緒,烏龜執行緒,main主線程
(二)實現runnable介面,重寫run方法
在這個地方會涉及到靜態**模式,感興趣的可以去了解一下
使用執行緒:
1. 建立真實角色
2. 建立**角色 + 真實物件的引用
3. 呼叫start()方法啟動執行緒
模擬同時做兩件事:聊qq,敲**
1. 建立乙個執行緒
public class programmer implements runnable
}}
2. 測試,也是乙個執行緒
public static void main(string args) }}
3. 執行結果
1. 避免單繼承的侷限性,類只能單繼承,介面可以實現多繼承
2. 便於共享資源
(三)實現callable介面
使用執行緒:
1. 建立callable實現類,重寫call()方法
2. 借助執行排程服務executorservice,獲取future物件
3. 獲取值
4. 停止服務
模擬獲取乙個執行緒的返回值
public class cal implements callable
@override
public integer call() throws exception
}class race implements callable
}
執行結果
java多執行緒建立的三種方式
如果用加鎖的多執行緒,最好使用redis的分布式鎖代替 加鎖的多執行緒非常影響效能,可能會導致伺服器卡死,宕機 1.繼承thread 無返回值 第一步 繼承thread public class person extends thread catch interruptedexception e f...
java執行緒建立的三種方式 以及多執行緒例子
1 定義thread類的子類,並重寫該類的run方法,該run方法的方法體就代表了執行緒要完成的任務。因此把run 方法稱為執行體。2 建立thread子類的例項,即建立了執行緒物件。3 呼叫執行緒物件的start 方法來啟動該執行緒。參考 例子1 銀行訪問錢問題 例子2 生產者與消費者問題 例子3...
java多執行緒三種方式
有三種 1 繼承thread類,重寫run函式 建立 class xx extends thread 開啟執行緒 物件.start 啟動執行緒,run函式執行 2 實現runnable介面,重寫run函式 開啟執行緒 thread t new thread 物件 建立執行緒物件 t.start 3 ...