精品推薦php
國內稀缺優秀Java全棧課程-Vue+SpringBoot通信錄系統全新發布!多線程
1、多線程調試斷點
Intellij IDEA
的debug
斷點調試是有一個模式的選擇的,就像下面這張圖,平時咱們都使用的是默認的 ALL
(在Eclipse
中默認是線程模式) ,這種模式咱們只能將一個線程斷下來,但其餘線程卻已經執行過了;而將其改成 Thread
後,就能夠多個線程都斷下來,而且能夠很方便的切換線程的執行流程,這就是多線程調試。編輯器
在debug
控制檯可以很方便的查看線程的執行狀態,也能夠很方便的選擇某個線程去執行:ide
不知道大夥有沒有遇到這樣一個問題,當咱們進行debug
時,一般不會進入某個方法一步一步的執行,而是選擇性的跳過;當你想要回頭觀察某個變量的值得變化時,而你恰好沒有跟進去,跳過了這個方法,這個時候,變量就被賦值了,咱們一般的作法是重來一次。spa
其實IDEA的調試功能是很是強大的,咱們來看看熟悉的調試窗口:線程
使用紅色框框出來的部分,表示當前程序執行到哪一塊,哪一部分,你能夠嘗試用鼠標點點看,你會發現編輯器會跳轉到對應的代碼中,固然當前斷點的位置一般會在列表的第一條。而後咱們使用右鍵單擊,你就能夠看到以下圖所示:debug
或者你也能夠在下圖中找到 Drop Frame
:調試
在IDEA中,所謂的回退,叫 Drop Frame
,選擇Drop Frame
後,程序會跳轉回調用當前這個方法的地方,固然已經改變的值是不會恢復的。可是當該方法再次被調用時,你能夠觀察到某個變量何時被改變,至少咱們不用再去從新運行一遍程序。code
條件斷點就是當知足某個條件(一般是表達式)時,debug
斷點纔會生效;這在循環中debug
是很是有用的;例如咱們想要在循環體中調試:當某個變量知足某個條件時,須要斷點調試,來查看詳細的執行流程及變化狀況。orm
咱們說過,IDEA
中的debug
功能是很是強大的,要使用條件斷點也很是簡單,下面這張圖片中 Condition
中的內容表明當name
爲eamon:23
時,程序執行到斷點處停下來。
有了條件斷點,這樣一來,那些不相關和咱們不關心的代碼就能夠直接跳過了。
4、臨時斷點所謂臨時斷點就是隻斷一次,IDEA
默認斷點會一致存在。若是你只須要暫停一次,那麼使用臨時斷點會比較方便,由於暫停一次以後斷點就自動消失了,不用手動取消。
臨時斷點能夠經過在打斷點時按住 Alt
或者 option
鍵,而後建立斷點。也能夠經過右鍵斷點處,選擇 more
而後在窗口中選中 Remove once hit
求值計算功能在咱們debug
過程當中,能夠很方便的查看程序中全部變量的值,也能夠臨時修改程序中變量的值,這個功能能在必定程度上輔助咱們進行代碼調試。
這個功能能夠在debug
時在debug
窗口打開:
打開後是這樣的:
而後你就能夠在表達式輸入框中,輸入你想要的操做,好比,查看變量、修改變量(臨時的)、調用某個方法等;這些操做結果將會在下方的Result
窗口中輸出。