Java中的retry标记

文章探讨了在阅读Java.util.concurrent.ThreadPoolExecutor源码时遇到的retry字段,它用于控制循环行为。retry不是一个关键字,但可以作为标签用于跳转到最外层循环。文章通过示例展示了continueretry和breakretry如何分别用于继续执行最外层循环的下一次遍历和直接跳出最外层循环,强调了它们与常规continue和break的区别。
摘要由CSDN通过智能技术生成

今天在读java.util.concurrent.ThreadPoolExecutor类的源码时,发现线程池在添加工作线程时用到了retry这个字段,记录一下用法。

  1. retry不是一个关键字,所以输入retry不会有任何提示,就是continue或者break跳转到哪里的一个标记点
  2. retry不是关键字,所以可以用任何合法的变量名表示,比如zhangsan、hello都可以。

continue retry

@Test
public void test1() {
    retry:
    for (int i = 0; i < 3; i++) {
        for (int j = 5; j < 8; j++) {
            System.out.println(i + "->" + j);
            if (j == 6) {
                continue retry;
            }
        }
    }
}
0->5
0->6
1->5
1->6
2->5
2->6

continue retry可以跳到retry标记的最外层循环,继续执行最外层循环的下一次遍历。

break retry

@Test
public void test2() {
    retry:
    for (int i = 0; i < 3; i++) {
        for (int j = 5; j < 8; j++) {
            System.out.println(i + "->" + j);
            if (j == 6) {
                break retry;
            }
        }
    }
}
0->5
0->6

break retry可以直接跳出retry标记的最外层循环。

总结:

  1. continue和break只能跳到或跳出当前循环;而continue retry和break retry可以直接跳到或跳出retry标记的最外层循环。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值