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點開始,人特別困 頭痛,吃了飯回宿舍睡覺,跟值班的打了個 下午躺了一下午。下班前起來買了菜回家,回到家,老爸正在地上睡著,帶...