前言
在看jdk源碼ThreadPoolExecutor中的addWorker方法的時候(ThreadPoolExecutor詳解及線程池優化),發現如下代碼:
首先這個retry不是java裏面的關鍵字,所以那個retry可以用任何合法的變量名替換,例如hello:等等,下面我們再來看一下這個到底有什麼用。
用用看
首先,下面代碼會打印出1~10
增加條件後的結果:
如果使用retry:
結論:break retry不管有幾層循環,都會退出。
再試試continue retry:
結論:continue retry會continue最外層的循環,準確的說是定義retry後面代碼片段的最外層循環。
結論
不管自己定義叫retry也好,mark也好,就是一個標記位置,標記着下一次continue或者break的跳轉位置。