第2个参数: maximumPoolSize 表示线程池能够容纳同时执行的最大线程数
从第1处来看,必须>=1.
如果待执行的线程数大于此值,需要借助第5个参数的帮助,缓存在队列中....在默认情况下,当线程池的线程数大于corePoolSize时,keepAliveTime才起作用....第5个参数: workQueue 表示缓存队列
当请求的线程数大于maximumPoolSize时,线程进入BlockingQueue....示例代码中在retry下方有两个无限循环;
在workerCount加1成功后,直接退出两层循环.
第2处,这样的表达式不利于阅读,应如是
?...第3处,与第1处的标签呼应,AtomicInteger对象的加1操作是原子性的;
break retry表 直接跳出与retry 相邻的这个循环体
第4处,此continue跳转至标签处,继续执行循环