Java如何使用Label标识符

更新时间:2023-05-06 22:24:53 阅读: 评论:0

Java 如何使⽤Label 标识符
引⾔
 在看线程池源码时发现了⼀个奇怪的⽤法(.urrent.ThreadPoolExecutor#addWorker),疑问来了:break,continue都懂,但是这个后⾯还加个retry是啥意思,前⾯加个retry:是⼲嘛的。
先说结论
 看了⼀圈⽹上的解答,结果如下:
 retry类似于goto,通常与循环放在⼀起,⽤于continue/break被retry标识的循环。(不过goto我没⽤过…)
举个栗⼦
 ⼩潘对⼤朗说:你卖炊饼⼀天⼲8⼩时,平均每⼩时能挣2⽂钱,我这⾥需要20⽂钱买三氧化⼆砷,你什么时候赚够钱了再回来。⼤朗看着⾝旁美丽动⼈的妻⼦,嘿笑了两声挑着扁担准备出门。“对了,3天后咱得去隔壁西门庆家串门,不管你挣没挣够都得回来啊!”  retry :        for  (;;) {            int  c = ctl .get ();            int  rs = runStateOf (c );            // Check if queue empty only if necessary.            if  (rs >= SH
UTDOWN &&                ! (rs == SHUTDOWN &&                  firstTask == null &&                  ! workQueue .isEmpty ()))                return  fal ;            for  (;;) {                int  wc = workerCountOf (c );                if  (wc >= CAPACITY ||                    wc >= (core ? corePoolSize : maximumPoolSize ))                    return  fal ;                if  (compareAndIncrementWorkerCount (c ))                    break  retry ;                c = ctl .get ();  // Re-read ctl                if  (runStateOf (c ) != rs )                    continue  retry ;                // el CAS failed due to workerCount change; retry inner loop            }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
总结
1. label标识符命名不固定,上⾯我命名就为abc。
2. abc标识的是外层循环,break abc指的是直接跳出外层循环。
3. 如果换成continue abc;指的是:今天赚够了钱,早早下班,明天再接着卖炊饼。完~  //⼀天8⼩时,每⼩时2⽂,问武⼤郎什么时候能回家        int  sum = 0;        int  day = 1;        abc :        for  (int  i = 0; i < 3; i ++) {            for  (int  j = 0; j < 8; j ++) {                sum += 2;                //挣够了钱就回家       
        if  (sum >= 20) {                    break  abc ;                }            }            //每天1⽂钱开销            sum --;            day ++;        }        System .out .println (String .format ("⾦莲妹妹,我回家了,我总共⽤了%s 天,挣了%s ⽂钱", day ,sum ));1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

本文发布于:2023-05-06 22:24:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/98518.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:循环   发现   时候   回家   回来   外层
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图