執行緒常用方法

2021-09-24 22:58:09 字數 2455 閱讀 8309

join方法:執行該方法的執行緒進入阻塞狀態,直到呼叫該方法的執行緒結束後再由阻塞轉為就緒狀態。

package com.zzu.test;

public

class

join

}class

testthread1

extends

thread

@override

public

void

run(

)catch

(interruptedexception e)

if(flag)

catch

(interruptedexception e)}}

}}class

testthread2

extends

thread

catch

(interruptedexception e)}}

}

執行結果:

因為執行緒1的sleep時間為5秒而執行緒2的sleep時間為6秒,從執行結果中我們了解到執行緒1在執行一次後就在等待執行緒2執行了,所以得出結論執行緒1在第一次執行後就進入到了阻塞狀態,直至執行緒2執行結束執行緒1才被喚醒,

注意:執行緒物件在呼叫join方法前必須先呼叫start方法,否則該執行緒永遠不會進入執行狀態。

interrupt方法:結束執行緒在呼叫object類的wait方法或該類的join方法、sleep方法過程中的阻塞狀態,並在呼叫wait、join和sleep方法處產生interruptedexception異常。

package com.zzu.test;

public

class

interrupt

catch

(interruptedexception e)

thread.

interrupt()

;}}class

time

implements

runnable

catch

(interruptedexception e)

system.err.

println

("time執行緒執行完畢");

}}

執行結果:

currentthread方法:返回當前正在執行的執行緒物件。

public

class

currentthread

}

執行結果:

當前執行緒為main執行緒,我們檢視currentthread方法的底層**,搜尋tostring得到:

public string tostring()  else 

}

發現第乙個main為執行緒名,第二個main為執行緒組名。

isalive方法:判定該執行緒是否處於就緒、執行或阻塞狀態,如果是則返回true,否則返回false。

public

class

isalive

}class

timethread1

extends

thread

@override

public

void

run(

)catch

(interruptedexception e)

system.out.

println

(thread.

isalive()

);//判斷main執行緒是否活著

}}

首先timethread執行緒開始執行,第一次判斷main執行緒是否活著,此時main執行緒還未結束,所以輸出true。第二次判斷main執行緒是否活著,此時timethread執行緒已經睡眠了1秒,main執行緒顯然完成,所以輸出false。

public

class

daemon

}class

timethread2

extends

thread

}}

執行結果:

發現timethread2執行緒中run方法中的輸出語句為死迴圈輸出,但是並沒有無限執行,得出結論時間執行緒開始直至所有的非守護執行緒結束,所有的守護執行緒跟著強制結束。

執行緒常用方法

package test 執行緒常用的方法 thread string name 初始化執行緒的名字 setname string name 設定執行緒物件名 getname 返回執行緒的名字 sleep 執行緒睡眠指定的毫秒數。靜態的方法,在哪個執行緒中執行了sleep方法 那麼就是哪個執行緒睡眠...

執行緒1 執行緒常用方法

1 執行緒方法 1 start 啟動執行緒,並進入就緒狀態,隨時等待執行 2 run 重寫的方法,開始執行執行緒 3 currentthread 呼叫當前執行緒 4 getname 獲取執行緒名字 5 setname 設定執行緒名字 6 yield 呼叫此方法的執行緒,釋放當前cpu的執行權,cpu...

執行緒常用的方法

執行緒常用的方法 thread string name 初始化執行緒的名字 setname string name 設定執行緒物件名 getname 返回執行緒的名字 static sleep 那個執行緒執行了sleep的 那麼該執行緒就會睡眠指定毫秒數。currentthread 返回當前執行該方...