Monitor Ctrl Break執行緒,有點坑

2022-04-11 14:50:36 字數 2358 閱讀 2760

monitor ctrl-brea**程這個在idea中特有的執行緒,你了解嗎?這執行緒可能會在你除錯的時候給你帶來謎一樣的結果,為什麼呢?請看下面的例子:

首先我們先複習一下多執行緒的狀態(因為這個問題是我在複習多執行緒的時候發現的問題)

對於執行緒的所有狀態該如何去檢視呢?執行緒的狀態都是怎麼產生的這些面試高頻題目,我們是否還記得呢?下面附上**用**再一次複習一下,簡單明瞭。

下面是全部的**:

1

/**2

* @description: 檢視執行緒的所有狀態

3* @projectname: demo

4* @package: com.thread

5* @author: xiaohema

6* @createdate: 2020/10/24 9:037*/

89public

class

threadsate catch

(interruptedexception e)

2829}30

31 system.out.println("---thread執行緒結束---");

3233

});34

35//

檢視執行緒的狀態

3637 thread.state state =thread.getstate();

3839

//這時候我們只是建立了個執行緒 也就是new的狀態

4041 system.out.println("執行緒狀態 " +state);

4243

//啟動執行緒

4445

thread.start();

4647

//檢視執行緒的狀態

4849 state =thread.getstate();

5051

//52

53 system.out.println("執行緒狀態 " +state);

5455

5657

5859

6061

//根據執行緒的狀態來停止死迴圈

6263

//while (state != thread.state.terminated) catch (interruptedexception e)

7475

////

檢視執行緒的狀態

7677

//state = thread.getstate();

7879

"執行緒狀態 " + state);

8081//}

8283

8485

8687

//根據執行緒的總條數來停止死迴圈

8889

while (true

) 107

108try

catch

(interruptedexception e)

117118

//檢視執行緒的狀態

119120 state =thread.getstate();

121122 system.out.println("執行緒狀態 " +state);

123124

}125

126127

128129

130}

131132 }

結果:

對於**中有檢驗的方式:一種是

thread.state.terminated
採用執行緒的狀態來判斷執行緒是否結束

另一種是通過執行緒的數量來判斷執行緒的數量

thread.activecount()
注意(使用idea的小夥伴要注意了,在idea中使用

thread.activecount()
debug啟動的不會出現,只有run啟動的會出現,出現執行緒數最後有2條的問題,所以在上面的**中才用

if (i == 2)
monitor ctrl-brea**程是在idea中才有的,而且還是要用run啟動方式,所以在寫測試**的小夥伴要注意了!!!

測試**

近來有點鬱悶。

這段時間不知道怎麼的,老是很鬱悶,工作時也挺難專心起來,到底怎麼了?哎。油費公升了也有幾個星期了,什麼時候才能降下來耶,想想,感覺中國的資源真的很缺,前段時間,石嘴街那邊老是跳標,電量超負荷的使用。汽油也缺,電也缺,什麼都缺。車子多了,空氣慢慢的變得不好,特別是那些公共汽車,排出的氣足可以毒死老鼠。...

隨感,有點亂

真理常常掌握在少數人手裡,可有些人明明可以掌握真理但卻因為某些原因成為不了少數人。我不是個優柔寡斷的人,但骨子裡卻是個軟心腸的人,雖然有時候甚至會刀子嘴。但很不幸,有些人只記住了我偶爾的刀子嘴,無視了我為他付出的心血。曾有件大事需要做決定,某不受人歡迎的親戚出了個主意,那個聽起來很不好的建議。因為不...

有點感冒了

昨天去鍛鍊了半個小時,沒想到量還比較大。出了一身汗就出來了,在外面等,沒及時換衣服。下午開始腿 手臂都開始發酸。晚上理髮時,理髮店竟然開著空調,回來有段時間穿少了。今天上午11點開始,人特別困 頭痛,吃了飯回宿舍睡覺,跟值班的打了個 下午躺了一下午。下班前起來買了菜回家,回到家,老爸正在地上睡著,帶...