前言
在看jdk源码ThreadPoolExecutor中的addWorker方法的时候(ThreadPoolExecutor详解及线程池优化),发现如下代码:
首先这个retry不是java里面的关键字,所以那个retry可以用任何合法的变量名替换,例如hello:等等,下面我们再来看一下这个到底有什么用。
用用看
首先,下面代码会打印出1~10
增加条件后的结果:
如果使用retry:
结论:break retry不管有几层循环,都会退出。
再试试continue retry:
结论:continue retry会continue最外层的循环,准确的说是定义retry后面代码片段的最外层循环。
结论
不管自己定义叫retry也好,mark也好,就是一个标记位置,标记着下一次continue或者break的跳转位置。