一 執行緒和程序
1 程序(process):正在執行的程式
2 執行緒(thread):程序中的乙個任務,必須包含在程序中,程序是執行緒的容器
3 乙個程序中至少得包含乙個執行緒,包含乙個執行緒的程序叫單執行緒程序,包含兩個或兩個以上執行緒的程序叫多執行緒程序
4 執行緒的作用:使用多執行緒是為了讓多工並行
5 執行緒的狀態:
(1)出生狀態(born):執行緒剛new完的狀態
(2)就緒狀態(ready):例項化執行緒會使執行緒處於就緒狀態,但不會執行執行緒中的**
(3)執行狀態(run):呼叫執行緒的start方法會啟動執行緒,將其變為執行狀態
(4)阻塞狀態(block):由執行緒掛起、執行緒休眠、執行緒等待而引起的狀態,不是一直都有
(5)死亡狀態(dead):run方法執行結束時,執行緒終止
6 建立執行緒的方法:
(1)繼承thread類
(2)實現runnable介面
7 關閉程序時,一定先關閉所有程序的執行緒,即程序要等到所有執行緒都終止執行後才結束
8 執行緒具有優先順序,但不絕對改變執行緒的完成效率
9 main函式執行時所屬的執行緒稱為主線程
二 守護執行緒
1 守護執行緒:不影響程序的退出,是一直執行的程式
三 執行緒安全和非執行緒安全
1 執行緒安全:多執行緒並行時得到的結果是期望值時,稱執行緒安全
2 非執行緒安全:多執行緒並行時得到的結果有乙個不是期望值時,稱非執行緒安全
3 出現非執行緒安全的原因:多個執行緒操作同一資源
4 保證執行緒安全的方法:
(1)同步方法:在方法宣告時新增關鍵字synchronized為多執行緒訪問的方法加鎖,使得同時只允許乙個執行緒執行方法中的**,其他執行緒處於等待狀態
(2)同步塊:同步塊用於包含加鎖的語句,乙個執行緒執行到同步塊時,會對同步物件加鎖,然後執行同步塊中的語句,其他執行緒執行到同步塊時,進入等待狀態
5 同步塊和同步方法
(1)同步方法同一時刻只允許乙個執行緒訪問,乙個物件就是鑰匙,靜態方法的鑰匙是類名,例項方法的鑰匙是呼叫該方法的物件名
(2)同步塊可以以任意乙個字元作為鑰匙,或者以類名.class作為鑰匙
6 類名.class:獲取該類在方法區中的源**,源**在方法區中只載入一次
乙個類首次載入時,首先載入類的源**到方法區,然後執行靜態屬性、靜態塊
四 相關類
1 thread類:用於創造執行緒,操作執行緒的方法
2 timer類:執行緒類,對執行緒的封裝,封裝定時器
五 相關方法
(1)start():啟動執行緒
(2)sleep():為當前執行緒指定時間休眠,執行緒休眠不占用cpu資源
(4)setdaemon():設定該執行緒為守護狀態,該執行緒是否執行不影響程序的結束
(5)mkdir():建立當前目錄
(6)mkdirs():建立當前目錄和字目錄
(7)setpriority():修改執行緒優先順序狀態
Java執行緒基本概念
程序 執行緒 併發執行 在作業系統中兩個比較容易混淆的概念是程序 process 和執行緒 thread 作業系統中的程序是資源的組織單位。程序有乙個包含了程式內容和資料的位址空間,以及其它的資源,包括開啟的檔案 子程序和訊號處理器等。不同程序的位址空間是互相隔離的。而執行緒表示的是程式的執行流程,...
java多執行緒 多執行緒的基本概念
基本概念 同步和非同步 同步 操作一旦開始,呼叫者必須等到方法呼叫返回後,操作才能繼續進行。非同步 操作開始後,不必等到方法返回,即可開始其他操作。並行和併發 並行 假設有兩個cpu同時執行不同的執行緒,叫並行。併發 有乙個cpu,一會兒執行這個執行緒,一會兒執行那個執行緒,叫併發。臨界區 是值公共...
多執行緒基本概念
什麼是程式 為了完成某項特定的任務,使用某種語言,編寫一組指令的集合 什麼是程序 是乙個正在進行的程式 什麼是執行緒 在乙個程序中,執行的一套功能流程,稱為執行緒 在乙個程序中,執行的多套功能流程,稱為多執行緒 多執行緒程式的優點 1 降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷毀造成...