生命週期:建立 ->就緒->執行(阻塞)->終止
狀態標識:new ,runnable ,running ,(blocked,timed waiting,wating) ,terminated
wating :呼叫wait,join,notyfy
blocked:synchroinzed ,lock
timed waiting :sleep(100),timeunit
1.繼承thread
2.實現runnable介面
3.實現callable 介面 返回future
在建立乙個執行緒時,我們重寫run(),但是我啟動乙個執行緒我們卻呼叫了start(),那麼他們之間肯定有一定的聯絡,檢視原始碼發現,start()方法呼叫了本地方法start0().
private
native
void
start0()
;
在開始執行這個執行緒時,jvm 將會呼叫該執行緒的run() 方法,換言之,run方法是被jni 方法start0() 呼叫的。
1.執行緒結束生命週期正常結束
執行緒執行時完成自己的使命後,就會正常的退出。
2.捕獲中斷訊號關閉執行緒
thread t =
newthread((
)->
system.out.
println
("i will be exiting")}
);t.
start()
; timeunit.minutes.
sleep(2
);t.
interrupt()
;//中斷執行緒
1)interrupt() 中斷執行緒,中斷乙個執行緒不代表乙個執行緒的生命週期結束。僅僅是打斷了當前執行緒的阻塞狀態.(一旦執行緒在阻塞狀態下被打斷,會丟擲interruptedexception 異常)
2)isterrupted() 判斷當前執行緒是否被中斷。
3)interrupted() 判斷當前執行緒是否被中斷,會進行乙個復位操作。直接擦除interrupt標識。
3.使用volatile 修飾乙個flag 標識
private
static
volatile flag =
false
; thread t=
newthread((
)->})
; t.
start()
; flag=
true
;
C 啟動和結束乙個執行緒
在程式執行中會遇到啟動本軟體的exe問,或者啟用其它的exe檔案,已達到執行某些操作的作用。下面是兩種最常見的啟動exe檔案。1 呼叫系統dll使用其提供的方法。引用的dll,csharp view plain copy print dllimport kernel32.dll public sta...
Python啟動和結束程序
import os 通過這一條語句即可開啟指定的程式 linux下需要的依賴 import os windows下需要的依賴 import wmi 需要結束的程序名稱 processname chrome.exe windows環境情況下結束程序 c wmi.wmi for process in c...
UVM平台啟動和結束
uvm中通過objection機制來控制驗證平台的關閉。在每個phase中,uvm會檢查是否有objection被提起 raise objection 如果有,那麼等待這個objection被撤銷 drop objection 後停止 如果沒有,則馬上結束當前phase。raise objectio...