博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java retry_java里面的retry:
阅读量:4356 次
发布时间:2019-06-07

本文共 1134 字,大约阅读时间需要 3 分钟。

今天在看java线程池的源码的时候,看到ThreadPoolExecutor里面的addWork()方法有下图中的这种写法,因为之前没有见过,所以好奇研究了一下

6836608a23e1

首先这个retry不是java里面的关键字,所以那个retry可以用任何合法的变量名替换,例如hello:等。

下面我们再来看一下这个到底有什么用

public class RetryDemo {

public static void main(String[] args) {

int count = 0;

for (int i = 0; i < 2; i++){

for (int j = 0; j < 5; j++){

count++;

System.out.print(count+" ");

}

}

}

}

上面这段代码,会打印1~10一共10个数

public class RetryDemo {

public static void main(String[] args) {

int count = 0;

for (int i = 0; i < 2; i++){

for (int j = 0; j < 5; j++){

count++;

if (count == 3){

break;

}

System.out.print(count+" ");

}

}

}

}

我们在里面加一个条件判断,当count=3的时候就跳出当前循环,所以只打印1245678。

我们再看一下下面的代码会打印什么

public class RetryDemo {

public static void main(String[] args) {

int count = 0;

retry:

for (int i = 0; i < 2; i++){

for (int j = 0; j < 5; j++){

count++;

if (count == 3){

break retry;

}

System.out.print(count+" ");

}

}

}

}

我们再代码里面加了一个retry:当count==3的时候break retry; 聪明的你可能已经猜到了,这段代码只会打印12。break retry;是跳出了整个的两层循环。

这里我的理解是这个retry相当于是一个标记符,标识的是break的跳转位置。当然continue也是同样的道理。

有兴趣的朋友可以试一下continue会发生什么样的事情,这里我就不演示了。

纸上得来终觉浅,有些地方我可能表达不太清楚,自己尝试在自己项目里面运行一下上面代码,相信能加强你的理解。

如果我有讲的不对的地方,欢迎各位大佬评论指出,也可以加微信一起探讨👇

6836608a23e1

转载地址:http://vlxys.baihongyu.com/

你可能感兴趣的文章
Codeforces Round #540 (Div. 3) B. Tanya and Candies
查看>>
Kubernetes Fluentd+Elasticsearch+Kibana统一日志管理平台搭建的填坑指南
查看>>
ListViewBase中的CanReorderItems属性
查看>>
POJ 1321 棋盘问题(状态压缩DP | DFS)
查看>>
LA3902 Networlk
查看>>
BZOJ1511: [POI2006]OKR-Periods of Words
查看>>
docker常用命令
查看>>
熔断器设计模式
查看>>
WMAP 启动报错 PHP- 提示缺少 msvcr110.dll 的问题
查看>>
linux的chmod,chown命令详解
查看>>
Excel VBA 基本概念
查看>>
testlink的那些坑
查看>>
2019-04-17 快速备份存储过程
查看>>
PAT A1115 Counting Nodes in a BST (30 分)——二叉搜索树,层序遍历或者dfs
查看>>
汤姆叔叔的小屋
查看>>
第二周 1 时间换算(5分)
查看>>
定义label标签宽度需要设置display:inline-block;
查看>>
OUC_Summer Training_ DIV2_#2之解题策略 715
查看>>
Centos6.8搭建Git服务(git版本可选)(转)
查看>>
转载:Linux下用mutt给QQ邮箱发匿名邮件
查看>>