前言

呵呵 之前项目中会存在这样的一个情况

选择多个文件导入 : 假设选择多个文件(一般是十个以上), 偶尔会抛出如下异常, 呵呵 和 redis 相关, 但是看异常信息 RejectedExecutionException 抛出的地方 又是在 forkjoin 库里面

呵呵 这两者有什么关联呢?

这里就来看看, 呵呵 forkjoin 这部分的类库 有一些博大精深, 多久还得仔细看看, 说实话 看起来 还是很有难度

我这里 只是从解决问题的角度, 看了一些, 但是 但是还有很多不明白的地方

另外这部分类库的调试也很奇怪, 似乎是和其他的普通线程不太一样, 这部分的代码的调试 你看不到很大一部分的局部变量

另外 就算你断点是 suspend all, 然而 断点打上了之后 你会发现 还有一部分的线程 还在跑 ??

这个就有点神奇了, 呵呵 希望多久能够 了解一下 这个是什么情况

问题调试

在业务系统中 错误信息大致如下, 当然 实际情况是 在 redisTemplate 获取响应数据的时候, 抛出来的, 确实是 在 ForkJoin 库里面抛出来的

然后导致了业务系统这边 上传文件, 然后解析记录出错, 最终记录的错误信息为  “Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker”, 但是实际上 这部分记录是期望可以正常解析的

-- 一种情况
java.lang.RuntimeException: org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker// 省略一部分堆栈信息 at com.alibaba.excel.read.metadata.holder.AbstractReadHolder.notifyAfterAllAnalysed(AbstractReadHolder.java:189)at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.execute(XlsxSaxAnalyser.java:191)at com.alibaba.excel.analysis.ExcelAnalyserImpl.analysis(ExcelAnalyserImpl.java:105)at com.alibaba.excel.ExcelReader.readAll(ExcelReader.java:160)// 省略一部分堆栈信息at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
2021-01-31 18:22:08.057 ERROR 2571 [uploadExecutor-3] c.y.f.upload.service.FileSystemService   : File parse and import failed:org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker, file : {"filePath":"poss机测试(1).xlsx","originalFileName":"poss机测试(1).xlsx"}
java.lang.RuntimeException: org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker// 省略一部分堆栈信息 at com.alibaba.excel.read.metadata.holder.AbstractReadHolder.notifyAfterAllAnalysed(AbstractReadHolder.java:189)at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.execute(XlsxSaxAnalyser.java:191)at com.alibaba.excel.analysis.ExcelAnalyserImpl.analysis(ExcelAnalyserImpl.java:105)at com.alibaba.excel.ExcelReader.readAll(ExcelReader.java:160)// 省略一部分堆栈信息 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)-- 另外一种情况
java.lang.RuntimeException: org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker// 省略一部分堆栈信息at com.alibaba.excel.read.metadata.holder.AbstractReadHolder.notifyAfterAllAnalysed(AbstractReadHolder.java:189)at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.execute(XlsxSaxAnalyser.java:191)at com.alibaba.excel.analysis.ExcelAnalyserImpl.analysis(ExcelAnalyserImpl.java:105)at com.alibaba.excel.ExcelReader.readAll(ExcelReader.java:160)// 省略一部分堆栈信息at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
2021-01-31 18:22:09.187 ERROR 2571 [uploadExecutor-2] c.y.f.u.c.impl.SingleFileReaderCallBack  : Data import job failure, recordId=9e97ce12-f6da-43c1-b2ee-371149e7ca2d, errorMsg=org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker
2021-01-31 18:22:09.207 ERROR 2571 [uploadExecutor-2] c.y.f.upload.service.FileSystemService   : File parse and import failed:org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker, file : {"filePath":"113倍账单基本分析.xlsx","originalFileName":"113倍账单基本分析.xlsx"}
com.alibaba.excel.exception.ExcelAnalysisException: org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked workerat com.alibaba.excel.read.metadata.holder.AbstractReadHolder.notifyEndOneRow(AbstractReadHolder.java:151)at com.alibaba.excel.analysis.v07.handlers.ProcessResultCellHandler.endHandle(ProcessResultCellHandler.java:45)at com.alibaba.excel.analysis.v07.XlsxRowHandler.endElement(XlsxRowHandler.java:44)at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.parseXmlSource(XlsxSaxAnalyser.java:165)at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.execute(XlsxSaxAnalyser.java:189)at com.alibaba.excel.analysis.ExcelAnalyserImpl.analysis(ExcelAnalyserImpl.java:105)at com.alibaba.excel.ExcelReader.readAll(ExcelReader.java:160)// 省略一部分堆栈信息at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker// 省略一部分堆栈信息at com.alibaba.excel.read.metadata.holder.AbstractReadHolder.notifyEndOneRow(AbstractReadHolder.java:145)... 21 more

来到 RejectedExecutionException 里面打上一个断点, 调试一下, 堆栈信息如下

可以看出是在 ForkJoinPool. tryCompensate 里面似乎是尝试什么东西, pool 承载不了了, 因此 抛出了 RejectedExecutionException

<init>:64, RejectedExecutionException (java.util.concurrent)
tryCompensate:2011, ForkJoinPool (java.util.concurrent)
managedBlock:3310, ForkJoinPool (java.util.concurrent)
timedGet:1775, CompletableFuture (java.util.concurrent)
get:1915, CompletableFuture (java.util.concurrent)
await:81, AsyncCommand (io.lettuce.core.protocol)
awaitOrCancel:117, LettuceFutures (io.lettuce.core)
handleInvocation:75, FutureSyncInvocationHandler (io.lettuce.core)
invoke:79, AbstractInvocationHandler (io.lettuce.core.internal)
hget:-1, $Proxy114 (com.sun.proxy)
hGet:170, LettuceHashCommands (org.springframework.data.redis.connection.lettuce)
hGet:1110, DefaultedRedisConnection (org.springframework.data.redis.connection)
lambda$get$0:53, DefaultHashOperations (org.springframework.data.redis.core)
doInRedis:-1, 384775020 (org.springframework.data.redis.core.DefaultHashOperations$$Lambda$3334)
execute:228, RedisTemplate (org.springframework.data.redis.core)
execute:188, RedisTemplate (org.springframework.data.redis.core)
execute:96, AbstractOperations (org.springframework.data.redis.core)
get:53, DefaultHashOperations (org.springframework.data.redis.core)
get:65, DefaultBoundHashOperations (org.springframework.data.redis.core)
// 省略部分堆栈信息
accept:193, ReferencePipeline$3$1 (java.util.stream)
forEachRemaining:1382, ArrayList$ArrayListSpliterator (java.util)
copyInto:481, AbstractPipeline (java.util.stream)
wrapAndCopyInto:471, AbstractPipeline (java.util.stream)
doLeaf:747, ReduceOps$ReduceTask (java.util.stream)
doLeaf:721, ReduceOps$ReduceTask (java.util.stream)
compute:316, AbstractTask (java.util.stream)
exec:731, CountedCompleter (java.util.concurrent)
doExec:289, ForkJoinTask (java.util.concurrent)
runTask:1056, ForkJoinPool$WorkQueue (java.util.concurrent)
runWorker:1692, ForkJoinPool (java.util.concurrent)
run:157, ForkJoinWorkerThread (java.util.concurrent)

来到这里的 ForkJoinPool. tryCompensate, 看样子这里是 pool 是 ForkJoin 的 commonPool, 并且 totalCount 超过了 7 + 256

呵呵 这里我之前是差点没有注意到 这里的 "this == common" 的判断, 因此 造成了一些 我的其他的疑惑, 呵呵 后面来看

单元测试

根据这里的一些情况, 我们大致构造 单元测试如下来 复现问题

必须是需要 parallelStream[默认基于 commonPool] 的 api 结合 CompletableFuture, 才能复现这个问题

呵呵 在我这里真实场景里面 AsyncCommand 是继承了 CompletableFuture 的, 呵呵 这个可是真的隐秘

package com.hx.test11;import com.hx.log.util.Tools;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;/*** Test09ParallelStreamRejectEx** @author Jerry.X.He <970655147@qq.com>* @version 1.0* @date 2021-01-29 17:17*/
public class Test09ParallelStreamRejectEx {// nThreadstatic int N_THREAD = 10;// executorServicestatic ExecutorService NORMAL_EXECUTOR_SERVICE = new ThreadPoolExecutor(N_THREAD, N_THREAD,10, TimeUnit.SECONDS, new LinkedBlockingQueue<>());static ExecutorService FORK_JOIN_EXECUTOR_SERVICE = ForkJoinPool.commonPool();// Test09ParallelStreamRejectExpublic static void main(String[] args) throws Exception {// parallelism : 1 -> 1// parallelism : 2 -> 8// parallelism : 4 -> 16// parallelism : 7 -> 32// parallelism : 8 -> 32// parallelism : 16 -> 64// listList<Integer> list = new ArrayList<>();for (int j = 0; j < 100_0000; j++) {list.add(j);}for (int i = 0; i < N_THREAD; i++) {NORMAL_EXECUTOR_SERVICE.execute(() -> {int count = list.parallelStream().map(ele -> {Future future = CompletableFuture.runAsync(() -> {});try {Object result = future.get(10, TimeUnit.SECONDS);} catch (Exception e) {e.printStackTrace();}return ele;}).reduce(Integer::sum).orElse(0);System.out.println(count);});//            FORK_JOIN_EXECUTOR_SERVICE.submit(() -> {
//                int count = list
//                        .parallelStream()
//                        .map(ele -> {
//                            Future future = CompletableFuture.runAsync(() -> { });
//
//                            try {
//                                Object result = future.get(10, TimeUnit.SECONDS);
//                            } catch (Exception e) {
//                                e.printStackTrace();
//                            }
//                            return ele;
//                        })
//                        .reduce(Integer::sum)
//                        .orElse(0);
//                System.out.println(count);
//            });}int x = 0;Tools.sleep(1000_000);}}

然后 稍微打印一下 commonPool 的情况

可以看到的是 size 是一直在增加, 一直增加到了 263[7 + 256], 然后就抛出了 我们看到的异常

java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 7, active = 7, running = 7, steals = 0, tasks = 24, submissions = 61]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 8, active = 7, running = 7, steals = 0, tasks = 28, submissions = 61]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 9, active = 7, running = 7, steals = 0, tasks = 30, submissions = 62]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 10, active = 7, running = 7, steals = 0, tasks = 33, submissions = 62]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 13, active = 7, running = 7, steals = 1, tasks = 41, submissions = 63]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 14, active = 7, running = 7, steals = 2, tasks = 43, submissions = 63]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 15, active = 7, running = 7, steals = 2, tasks = 44, submissions = 65]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 17, active = 7, running = 7, steals = 3, tasks = 47, submissions = 67]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 17, active = 7, running = 7, steals = 3, tasks = 47, submissions = 68]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 19, active = 7, running = 7, steals = 4, tasks = 51, submissions = 68]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 20, active = 7, running = 7, steals = 5, tasks = 52, submissions = 68]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 22, active = 7, running = 7, steals = 7, tasks = 54, submissions = 68]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 22, active = 7, running = 7, steals = 7, tasks = 54, submissions = 69]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 23, active = 7, running = 7, steals = 7, tasks = 53, submissions = 71]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 23, active = 7, running = 7, steals = 7, tasks = 53, submissions = 72]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 25, active = 9, running = 9, steals = 11, tasks = 53, submissions = 74]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 27, active = 9, running = 9, steals = 11, tasks = 59, submissions = 75]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 28, active = 10, running = 10, steals = 12, tasks = 58, submissions = 76]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 28, active = 10, running = 10, steals = 12, tasks = 58, submissions = 77]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 30, active = 10, running = 10, steals = 14, tasks = 61, submissions = 77]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 33, active = 11, running = 11, steals = 15, tasks = 66, submissions = 79]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 33, active = 11, running = 11, steals = 15, tasks = 66, submissions = 80]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 34, active = 11, running = 11, steals = 16, tasks = 66, submissions = 81]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 35, active = 11, running = 11, steals = 17, tasks = 65, submissions = 81]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 38, active = 12, running = 12, steals = 19, tasks = 68, submissions = 82]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 40, active = 12, running = 12, steals = 20, tasks = 68, submissions = 83]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 41, active = 12, running = 12, steals = 20, tasks = 68, submissions = 84]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 41, active = 12, running = 12, steals = 20, tasks = 68, submissions = 86]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 41, active = 10, running = 10, steals = 20, tasks = 68, submissions = 86]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 45, active = 10, running = 10, steals = 23, tasks = 65, submissions = 89]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 46, active = 12, running = 12, steals = 25, tasks = 65, submissions = 91]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 47, active = 12, running = 12, steals = 25, tasks = 64, submissions = 93]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 52, active = 13, running = 13, steals = 33, tasks = 66, submissions = 96]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 57, active = 18, running = 18, steals = 42, tasks = 65, submissions = 101]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 58, active = 18, running = 18, steals = 43, tasks = 66, submissions = 101]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 59, active = 18, running = 18, steals = 43, tasks = 65, submissions = 102]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 59, active = 17, running = 17, steals = 43, tasks = 65, submissions = 102]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 59, active = 17, running = 17, steals = 43, tasks = 65, submissions = 103]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 63, active = 14, running = 14, steals = 48, tasks = 64, submissions = 107]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 63, active = 13, running = 13, steals = 48, tasks = 64, submissions = 108]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 64, active = 13, running = 13, steals = 49, tasks = 64, submissions = 108]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 64, active = 12, running = 12, steals = 49, tasks = 64, submissions = 108]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 64, active = 11, running = 11, steals = 49, tasks = 64, submissions = 108]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 66, active = 9, running = 9, steals = 50, tasks = 63, submissions = 110]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 69, active = 11, running = 11, steals = 54, tasks = 62, submissions = 112]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 70, active = 11, running = 11, steals = 54, tasks = 61, submissions = 113]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 71, active = 11, running = 11, steals = 56, tasks = 61, submissions = 113]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 71, active = 8, running = 8, steals = 56, tasks = 61, submissions = 114]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 71, active = 6, running = 6, steals = 56, tasks = 61, submissions = 114]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 72, active = 4, running = 4, steals = 56, tasks = 65, submissions = 115]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 73, active = 4, running = 4, steals = 57, tasks = 64, submissions = 116]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 74, active = 4, running = 4, steals = 59, tasks = 63, submissions = 117]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 75, active = 1, running = 1, steals = 59, tasks = 62, submissions = 118]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 76, active = 2, running = 2, steals = 61, tasks = 65, submissions = 118]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 77, active = 1, running = 1, steals = 61, tasks = 66, submissions = 119]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 78, active = 2, running = 2, steals = 62, tasks = 65, submissions = 120]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 79, active = 2, running = 2, steals = 63, tasks = 65, submissions = 121]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 80, active = 1, running = 1, steals = 63, tasks = 65, submissions = 122]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 81, active = 1, running = 1, steals = 63, tasks = 67, submissions = 123]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 82, active = 2, running = 2, steals = 65, tasks = 66, submissions = 124]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 83, active = 1, running = 1, steals = 66, tasks = 65, submissions = 125]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 84, active = 1, running = 1, steals = 66, tasks = 64, submissions = 126]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 85, active = 4, running = 4, steals = 69, tasks = 67, submissions = 126]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 86, active = 2, running = 2, steals = 70, tasks = 68, submissions = 127]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 88, active = 2, running = 2, steals = 71, tasks = 68, submissions = 129]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 89, active = 2, running = 2, steals = 73, tasks = 68, submissions = 130]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 91, active = 2, running = 2, steals = 73, tasks = 69, submissions = 131]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 92, active = 2, running = 2, steals = 75, tasks = 68, submissions = 132]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 93, active = 1, running = 1, steals = 75, tasks = 68, submissions = 133]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 94, active = 5, running = 5, steals = 80, tasks = 67, submissions = 134]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 94, active = 4, running = 4, steals = 80, tasks = 67, submissions = 134]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 95, active = 1, running = 1, steals = 80, tasks = 66, submissions = 135]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 96, active = 3, running = 3, steals = 82, tasks = 66, submissions = 136]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 97, active = 2, running = 2, steals = 82, tasks = 66, submissions = 137]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 98, active = 2, running = 2, steals = 82, tasks = 67, submissions = 138]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 99, active = 2, running = 2, steals = 82, tasks = 66, submissions = 139]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 100, active = 3, running = 3, steals = 84, tasks = 65, submissions = 140]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 100, active = 2, running = 2, steals = 84, tasks = 65, submissions = 140]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 101, active = 3, running = 3, steals = 87, tasks = 65, submissions = 141]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 103, active = 3, running = 3, steals = 88, tasks = 63, submissions = 143]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 104, active = 2, running = 2, steals = 89, tasks = 63, submissions = 144]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 106, active = 2, running = 2, steals = 89, tasks = 61, submissions = 146]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 107, active = 3, running = 3, steals = 92, tasks = 63, submissions = 146]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 108, active = 1, running = 1, steals = 92, tasks = 66, submissions = 146]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 109, active = 1, running = 1, steals = 92, tasks = 65, submissions = 147]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 110, active = 2, running = 2, steals = 93, tasks = 66, submissions = 147]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 111, active = 1, running = 1, steals = 93, tasks = 65, submissions = 148]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 112, active = 1, running = 1, steals = 93, tasks = 64, submissions = 149]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 113, active = 1, running = 1, steals = 93, tasks = 64, submissions = 150]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 114, active = 2, running = 2, steals = 94, tasks = 63, submissions = 151]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 115, active = 1, running = 1, steals = 94, tasks = 63, submissions = 152]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 116, active = 1, running = 1, steals = 94, tasks = 62, submissions = 153]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 117, active = 1, running = 1, steals = 94, tasks = 62, submissions = 154]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 118, active = 6, running = 6, steals = 99, tasks = 61, submissions = 155]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 119, active = 6, running = 6, steals = 100, tasks = 60, submissions = 156]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 120, active = 6, running = 6, steals = 100, tasks = 59, submissions = 157]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 121, active = 5, running = 5, steals = 101, tasks = 58, submissions = 157]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 121, active = 3, running = 3, steals = 101, tasks = 58, submissions = 158]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 122, active = 4, running = 4, steals = 105, tasks = 58, submissions = 158]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 123, active = 3, running = 3, steals = 108, tasks = 61, submissions = 158]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 124, active = 2, running = 2, steals = 108, tasks = 61, submissions = 159]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 125, active = 3, running = 3, steals = 110, tasks = 60, submissions = 160]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 126, active = 2, running = 2, steals = 110, tasks = 61, submissions = 160]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 127, active = 1, running = 1, steals = 110, tasks = 62, submissions = 161]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 128, active = 1, running = 1, steals = 110, tasks = 62, submissions = 162]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 129, active = 3, running = 3, steals = 113, tasks = 61, submissions = 163]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 130, active = 6, running = 6, steals = 119, tasks = 61, submissions = 162]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 130, active = 5, running = 5, steals = 119, tasks = 61, submissions = 162]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 132, active = 5, running = 5, steals = 122, tasks = 63, submissions = 164]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 132, active = 4, running = 4, steals = 122, tasks = 63, submissions = 164]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 133, active = 3, running = 3, steals = 122, tasks = 62, submissions = 165]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 134, active = 2, running = 2, steals = 122, tasks = 61, submissions = 166]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 135, active = 1, running = 1, steals = 122, tasks = 60, submissions = 167]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 136, active = 4, running = 4, steals = 125, tasks = 60, submissions = 168]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 138, active = 3, running = 3, steals = 126, tasks = 60, submissions = 169]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 139, active = 1, running = 1, steals = 126, tasks = 59, submissions = 170]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 140, active = 3, running = 3, steals = 129, tasks = 59, submissions = 170]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 141, active = 5, running = 5, steals = 139, tasks = 59, submissions = 169]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 141, active = 5, running = 5, steals = 139, tasks = 59, submissions = 170]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 141, active = 5, running = 5, steals = 139, tasks = 59, submissions = 171]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 142, active = 4, running = 4, steals = 139, tasks = 58, submissions = 172]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 143, active = 4, running = 4, steals = 139, tasks = 57, submissions = 173]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 143, active = 3, running = 3, steals = 139, tasks = 57, submissions = 173]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 144, active = 3, running = 3, steals = 140, tasks = 56, submissions = 174]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 144, active = 2, running = 2, steals = 140, tasks = 56, submissions = 174]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 145, active = 2, running = 2, steals = 142, tasks = 55, submissions = 175]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 146, active = 7, running = 7, steals = 152, tasks = 54, submissions = 174]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 146, active = 7, running = 7, steals = 152, tasks = 54, submissions = 175]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 146, active = 7, running = 7, steals = 152, tasks = 54, submissions = 176]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 147, active = 6, running = 6, steals = 155, tasks = 53, submissions = 175]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 148, active = 9, running = 9, steals = 162, tasks = 52, submissions = 176]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 148, active = 9, running = 9, steals = 162, tasks = 52, submissions = 177]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 148, active = 9, running = 9, steals = 162, tasks = 52, submissions = 178]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 148, active = 8, running = 8, steals = 162, tasks = 52, submissions = 178]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 149, active = 1, running = 1, steals = 162, tasks = 51, submissions = 179]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 150, active = 2, running = 2, steals = 164, tasks = 51, submissions = 180]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 151, active = 2, running = 2, steals = 165, tasks = 50, submissions = 181]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 152, active = 2, running = 2, steals = 166, tasks = 50, submissions = 182]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 153, active = 1, running = 1, steals = 166, tasks = 49, submissions = 183]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 154, active = 5, running = 5, steals = 171, tasks = 48, submissions = 184]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 154, active = 4, running = 4, steals = 171, tasks = 48, submissions = 184]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 155, active = 7, running = 7, steals = 182, tasks = 49, submissions = 182]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 155, active = 7, running = 7, steals = 182, tasks = 49, submissions = 183]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 155, active = 6, running = 6, steals = 182, tasks = 49, submissions = 183]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 157, active = 14, running = 14, steals = 193, tasks = 49, submissions = 184]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 157, active = 12, running = 12, steals = 193, tasks = 49, submissions = 184]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 157, active = 12, running = 12, steals = 193, tasks = 49, submissions = 185]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 159, active = 8, running = 8, steals = 194, tasks = 48, submissions = 188]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 160, active = 8, running = 8, steals = 196, tasks = 47, submissions = 189]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 160, active = 6, running = 6, steals = 196, tasks = 47, submissions = 189]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 161, active = 2, running = 2, steals = 197, tasks = 46, submissions = 190]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 162, active = 5, running = 5, steals = 204, tasks = 45, submissions = 189]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 162, active = 5, running = 5, steals = 204, tasks = 45, submissions = 190]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 162, active = 5, running = 5, steals = 204, tasks = 45, submissions = 191]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 163, active = 9, running = 9, steals = 213, tasks = 46, submissions = 189]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 163, active = 8, running = 8, steals = 213, tasks = 46, submissions = 189]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 163, active = 8, running = 8, steals = 213, tasks = 46, submissions = 190]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 163, active = 8, running = 8, steals = 213, tasks = 46, submissions = 191]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 163, active = 8, running = 8, steals = 213, tasks = 46, submissions = 192]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 165, active = 5, running = 5, steals = 213, tasks = 46, submissions = 194]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 165, active = 4, running = 4, steals = 213, tasks = 46, submissions = 194]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 166, active = 2, running = 2, steals = 215, tasks = 46, submissions = 195]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 167, active = 1, running = 1, steals = 215, tasks = 45, submissions = 196]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 168, active = 1, running = 1, steals = 215, tasks = 45, submissions = 197]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 169, active = 1, running = 1, steals = 215, tasks = 44, submissions = 198]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 170, active = 1, running = 1, steals = 215, tasks = 43, submissions = 199]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 171, active = 1, running = 1, steals = 215, tasks = 43, submissions = 200]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 172, active = 2, running = 2, steals = 216, tasks = 42, submissions = 201]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 173, active = 2, running = 2, steals = 217, tasks = 41, submissions = 202]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 174, active = 9, running = 9, steals = 230, tasks = 40, submissions = 201]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 174, active = 9, running = 9, steals = 230, tasks = 40, submissions = 202]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 174, active = 9, running = 9, steals = 230, tasks = 40, submissions = 203]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 174, active = 7, running = 7, steals = 230, tasks = 40, submissions = 203]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 175, active = 3, running = 3, steals = 233, tasks = 41, submissions = 204]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 176, active = 2, running = 2, steals = 233, tasks = 41, submissions = 205]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 177, active = 1, running = 1, steals = 233, tasks = 40, submissions = 206]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 178, active = 1, running = 1, steals = 233, tasks = 39, submissions = 207]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 179, active = 6, running = 6, steals = 243, tasks = 39, submissions = 207]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 179, active = 5, running = 5, steals = 243, tasks = 39, submissions = 207]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 180, active = 7, running = 7, steals = 247, tasks = 38, submissions = 209]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 181, active = 7, running = 7, steals = 248, tasks = 39, submissions = 210]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 181, active = 6, running = 6, steals = 248, tasks = 39, submissions = 210]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 182, active = 3, running = 3, steals = 248, tasks = 39, submissions = 211]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 183, active = 2, running = 2, steals = 248, tasks = 38, submissions = 212]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 184, active = 2, running = 2, steals = 248, tasks = 37, submissions = 213]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 185, active = 1, running = 1, steals = 248, tasks = 36, submissions = 214]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 186, active = 6, running = 6, steals = 253, tasks = 35, submissions = 215]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 186, active = 5, running = 5, steals = 253, tasks = 35, submissions = 215]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 187, active = 6, running = 6, steals = 260, tasks = 35, submissions = 215]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 187, active = 5, running = 5, steals = 260, tasks = 35, submissions = 215]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 187, active = 3, running = 3, steals = 260, tasks = 35, submissions = 216]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 188, active = 3, running = 3, steals = 261, tasks = 34, submissions = 217]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 188, active = 2, running = 2, steals = 261, tasks = 34, submissions = 217]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 189, active = 3, running = 3, steals = 264, tasks = 33, submissions = 217]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 189, active = 2, running = 2, steals = 264, tasks = 33, submissions = 218]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 190, active = 8, running = 8, steals = 274, tasks = 32, submissions = 216]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 190, active = 8, running = 8, steals = 274, tasks = 32, submissions = 217]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 190, active = 7, running = 7, steals = 274, tasks = 32, submissions = 217]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 190, active = 5, running = 5, steals = 274, tasks = 32, submissions = 218]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 191, active = 11, running = 11, steals = 286, tasks = 32, submissions = 216]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 191, active = 11, running = 11, steals = 286, tasks = 32, submissions = 217]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 191, active = 11, running = 11, steals = 286, tasks = 32, submissions = 218]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 191, active = 10, running = 10, steals = 286, tasks = 32, submissions = 219]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 192, active = 9, running = 9, steals = 286, tasks = 31, submissions = 220]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 192, active = 4, running = 4, steals = 286, tasks = 31, submissions = 221]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 193, active = 1, running = 1, steals = 286, tasks = 31, submissions = 222]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 194, active = 8, running = 8, steals = 295, tasks = 30, submissions = 221]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 194, active = 7, running = 7, steals = 295, tasks = 30, submissions = 221]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 194, active = 6, running = 6, steals = 295, tasks = 30, submissions = 223]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 194, active = 3, running = 3, steals = 295, tasks = 30, submissions = 223]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 195, active = 8, running = 8, steals = 308, tasks = 32, submissions = 218]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 195, active = 8, running = 8, steals = 308, tasks = 32, submissions = 219]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 195, active = 7, running = 7, steals = 308, tasks = 32, submissions = 219]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 195, active = 7, running = 7, steals = 308, tasks = 32, submissions = 222]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 195, active = 7, running = 7, steals = 308, tasks = 32, submissions = 224]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 196, active = 6, running = 6, steals = 308, tasks = 33, submissions = 225]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 197, active = 4, running = 4, steals = 308, tasks = 33, submissions = 226]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 198, active = 2, running = 2, steals = 308, tasks = 33, submissions = 227]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 199, active = 2, running = 2, steals = 308, tasks = 32, submissions = 228]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 200, active = 1, running = 1, steals = 308, tasks = 31, submissions = 229]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 201, active = 2, running = 2, steals = 309, tasks = 30, submissions = 230]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 202, active = 3, running = 3, steals = 311, tasks = 29, submissions = 231]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 203, active = 6, running = 6, steals = 317, tasks = 28, submissions = 231]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 203, active = 6, running = 6, steals = 317, tasks = 28, submissions = 232]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 204, active = 9, running = 9, steals = 324, tasks = 27, submissions = 229]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 204, active = 8, running = 8, steals = 324, tasks = 27, submissions = 230]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 204, active = 8, running = 8, steals = 324, tasks = 27, submissions = 231]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 204, active = 8, running = 8, steals = 324, tasks = 27, submissions = 233]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 205, active = 12, running = 12, steals = 334, tasks = 29, submissions = 227]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 206, active = 11, running = 11, steals = 334, tasks = 29, submissions = 230]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 206, active = 11, running = 11, steals = 334, tasks = 29, submissions = 231]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 206, active = 11, running = 11, steals = 334, tasks = 29, submissions = 232]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 206, active = 11, running = 11, steals = 334, tasks = 29, submissions = 233]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 206, active = 11, running = 11, steals = 334, tasks = 29, submissions = 234]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 208, active = 8, running = 8, steals = 335, tasks = 27, submissions = 236]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 208, active = 6, running = 6, steals = 335, tasks = 27, submissions = 236]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 208, active = 5, running = 5, steals = 335, tasks = 27, submissions = 236]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 209, active = 2, running = 2, steals = 335, tasks = 26, submissions = 237]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 210, active = 7, running = 7, steals = 344, tasks = 27, submissions = 234]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 210, active = 7, running = 7, steals = 344, tasks = 27, submissions = 235]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 210, active = 7, running = 7, steals = 344, tasks = 27, submissions = 236]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 211, active = 7, running = 7, steals = 344, tasks = 26, submissions = 238]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 14, running = 14, steals = 357, tasks = 26, submissions = 232]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 14, running = 14, steals = 357, tasks = 26, submissions = 234]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 14, running = 14, steals = 357, tasks = 26, submissions = 235]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 14, running = 14, steals = 357, tasks = 26, submissions = 236]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 14, running = 14, steals = 357, tasks = 26, submissions = 237]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 13, running = 13, steals = 357, tasks = 26, submissions = 237]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 12, running = 12, steals = 357, tasks = 26, submissions = 237]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 212, active = 3, running = 3, steals = 357, tasks = 26, submissions = 238]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 26, running = 26, steals = 396, tasks = 25, submissions = 226]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 26, running = 26, steals = 396, tasks = 25, submissions = 227]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 25, running = 25, steals = 396, tasks = 25, submissions = 227]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 24, running = 24, steals = 396, tasks = 25, submissions = 227]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 24, running = 24, steals = 396, tasks = 25, submissions = 228]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 23, running = 23, steals = 396, tasks = 25, submissions = 228]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 23, running = 23, steals = 396, tasks = 25, submissions = 229]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 21, running = 21, steals = 396, tasks = 25, submissions = 229]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 20, running = 20, steals = 396, tasks = 25, submissions = 232]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 18, running = 18, steals = 396, tasks = 25, submissions = 235]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 17, running = 17, steals = 396, tasks = 25, submissions = 238]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 14, running = 14, steals = 396, tasks = 25, submissions = 239]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 12, running = 12, steals = 396, tasks = 25, submissions = 239]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 213, active = 11, running = 11, steals = 396, tasks = 25, submissions = 239]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 214, active = 13, running = 13, steals = 401, tasks = 24, submissions = 240]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 214, active = 12, running = 12, steals = 401, tasks = 24, submissions = 240]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 214, active = 10, running = 10, steals = 401, tasks = 24, submissions = 240]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 214, active = 7, running = 7, steals = 401, tasks = 24, submissions = 240]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 215, active = 24, running = 24, steals = 432, tasks = 27, submissions = 231]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 215, active = 23, running = 23, steals = 432, tasks = 27, submissions = 231]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 215, active = 22, running = 22, steals = 432, tasks = 27, submissions = 231]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 215, active = 22, running = 22, steals = 432, tasks = 27, submissions = 232]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 216, active = 20, running = 20, steals = 436, tasks = 28, submissions = 234]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 216, active = 18, running = 18, steals = 436, tasks = 28, submissions = 234]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 216, active = 17, running = 17, steals = 436, tasks = 28, submissions = 234]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 217, active = 16, running = 16, steals = 436, tasks = 28, submissions = 239]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 217, active = 16, running = 16, steals = 436, tasks = 28, submissions = 241]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 217, active = 15, running = 15, steals = 436, tasks = 28, submissions = 242]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 217, active = 14, running = 14, steals = 436, tasks = 28, submissions = 242]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 219, active = 4, running = 4, steals = 436, tasks = 27, submissions = 244]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 219, active = 3, running = 3, steals = 436, tasks = 27, submissions = 244]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 220, active = 1, running = 1, steals = 436, tasks = 26, submissions = 245]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 221, active = 1, running = 1, steals = 436, tasks = 25, submissions = 246]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 222, active = 2, running = 2, steals = 437, tasks = 25, submissions = 247]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 223, active = 1, running = 1, steals = 437, tasks = 25, submissions = 248]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 224, active = 1, running = 1, steals = 437, tasks = 24, submissions = 249]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 225, active = 1, running = 1, steals = 437, tasks = 23, submissions = 250]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 226, active = 1, running = 1, steals = 437, tasks = 22, submissions = 251]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 13, running = 13, steals = 453, tasks = 21, submissions = 248]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 12, running = 12, steals = 453, tasks = 21, submissions = 248]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 11, running = 11, steals = 453, tasks = 21, submissions = 248]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 11, running = 11, steals = 453, tasks = 21, submissions = 249]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 11, running = 11, steals = 453, tasks = 21, submissions = 251]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 9, running = 9, steals = 453, tasks = 21, submissions = 251]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 6, running = 6, steals = 453, tasks = 21, submissions = 252]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 227, active = 4, running = 4, steals = 453, tasks = 21, submissions = 252]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 19, running = 19, steals = 484, tasks = 23, submissions = 239]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 19, running = 19, steals = 484, tasks = 23, submissions = 240]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 19, running = 19, steals = 484, tasks = 23, submissions = 241]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 18, running = 18, steals = 484, tasks = 23, submissions = 241]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 18, running = 18, steals = 484, tasks = 23, submissions = 242]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 17, running = 17, steals = 484, tasks = 23, submissions = 245]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 16, running = 16, steals = 484, tasks = 23, submissions = 248]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 15, running = 15, steals = 484, tasks = 23, submissions = 248]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 14, running = 14, steals = 484, tasks = 23, submissions = 249]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 228, active = 14, running = 14, steals = 484, tasks = 23, submissions = 250]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 229, active = 14, running = 14, steals = 484, tasks = 22, submissions = 252]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 229, active = 12, running = 12, steals = 484, tasks = 22, submissions = 253]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 229, active = 11, running = 11, steals = 484, tasks = 22, submissions = 253]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 230, active = 3, running = 3, steals = 485, tasks = 22, submissions = 254]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 231, active = 4, running = 4, steals = 488, tasks = 21, submissions = 255]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 232, active = 4, running = 4, steals = 491, tasks = 20, submissions = 256]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 233, active = 7, running = 7, steals = 499, tasks = 20, submissions = 255]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 233, active = 7, running = 7, steals = 499, tasks = 20, submissions = 256]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 233, active = 7, running = 7, steals = 499, tasks = 20, submissions = 257]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 234, active = 6, running = 6, steals = 499, tasks = 19, submissions = 258]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 234, active = 5, running = 5, steals = 499, tasks = 19, submissions = 258]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 235, active = 5, running = 5, steals = 504, tasks = 19, submissions = 258]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 235, active = 5, running = 5, steals = 504, tasks = 19, submissions = 259]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 235, active = 4, running = 4, steals = 504, tasks = 19, submissions = 259]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 236, active = 2, running = 2, steals = 504, tasks = 18, submissions = 260]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 237, active = 22, running = 22, steals = 531, tasks = 19, submissions = 254]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 237, active = 21, running = 21, steals = 531, tasks = 19, submissions = 254]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 237, active = 20, running = 20, steals = 531, tasks = 19, submissions = 254]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 237, active = 20, running = 20, steals = 531, tasks = 19, submissions = 255]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 237, active = 20, running = 20, steals = 531, tasks = 19, submissions = 256]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 237, active = 19, running = 19, steals = 531, tasks = 19, submissions = 256]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 237, active = 17, running = 17, steals = 531, tasks = 19, submissions = 256]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 238, active = 9, running = 9, steals = 533, tasks = 18, submissions = 258]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 238, active = 7, running = 7, steals = 533, tasks = 18, submissions = 261]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 239, active = 13, running = 13, steals = 546, tasks = 17, submissions = 260]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 239, active = 13, running = 13, steals = 546, tasks = 17, submissions = 261]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 239, active = 9, running = 9, steals = 546, tasks = 17, submissions = 262]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 21, running = 21, steals = 571, tasks = 17, submissions = 250]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 19, running = 19, steals = 571, tasks = 17, submissions = 253]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 19, running = 19, steals = 571, tasks = 17, submissions = 254]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 19, running = 19, steals = 571, tasks = 17, submissions = 255]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 18, running = 18, steals = 571, tasks = 17, submissions = 255]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 12, running = 12, steals = 571, tasks = 17, submissions = 262]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 11, running = 11, steals = 571, tasks = 17, submissions = 262]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 9, running = 9, steals = 571, tasks = 17, submissions = 262]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 8, running = 8, steals = 571, tasks = 17, submissions = 262]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 240, active = 7, running = 7, steals = 571, tasks = 17, submissions = 262]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 241, active = 22, running = 22, steals = 603, tasks = 20, submissions = 252]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 241, active = 22, running = 22, steals = 603, tasks = 20, submissions = 253]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 241, active = 21, running = 21, steals = 603, tasks = 20, submissions = 253]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 241, active = 21, running = 21, steals = 603, tasks = 20, submissions = 254]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 241, active = 20, running = 20, steals = 603, tasks = 20, submissions = 254]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 241, active = 20, running = 20, steals = 603, tasks = 20, submissions = 255]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 242, active = 16, running = 16, steals = 603, tasks = 21, submissions = 257]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 242, active = 13, running = 13, steals = 603, tasks = 21, submissions = 259]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 242, active = 12, running = 12, steals = 603, tasks = 21, submissions = 259]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 242, active = 9, running = 9, steals = 603, tasks = 21, submissions = 263]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 244, active = 12, running = 12, steals = 607, tasks = 20, submissions = 265]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 244, active = 8, running = 8, steals = 607, tasks = 20, submissions = 265]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 245, active = 1, running = 1, steals = 607, tasks = 19, submissions = 266]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 246, active = 1, running = 1, steals = 607, tasks = 19, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 247, active = 1, running = 1, steals = 607, tasks = 18, submissions = 268]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 248, active = 1, running = 1, steals = 607, tasks = 17, submissions = 269]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 249, active = 1, running = 1, steals = 607, tasks = 16, submissions = 270]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 250, active = 22, running = 22, steals = 641, tasks = 18, submissions = 257]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 250, active = 22, running = 22, steals = 641, tasks = 18, submissions = 258]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 250, active = 22, running = 22, steals = 641, tasks = 18, submissions = 259]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 250, active = 21, running = 21, steals = 641, tasks = 18, submissions = 259]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 250, active = 21, running = 21, steals = 641, tasks = 18, submissions = 260]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 250, active = 21, running = 21, steals = 641, tasks = 18, submissions = 261]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 250, active = 18, running = 18, steals = 641, tasks = 18, submissions = 261]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 251, active = 18, running = 18, steals = 642, tasks = 18, submissions = 263]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 251, active = 16, running = 16, steals = 642, tasks = 18, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 251, active = 15, running = 15, steals = 642, tasks = 18, submissions = 270]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 252, active = 15, running = 15, steals = 644, tasks = 17, submissions = 272]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 252, active = 14, running = 14, steals = 644, tasks = 17, submissions = 272]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 252, active = 13, running = 13, steals = 644, tasks = 17, submissions = 272]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 253, active = 2, running = 2, steals = 645, tasks = 16, submissions = 273]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 254, active = 17, running = 17, steals = 672, tasks = 15, submissions = 263]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 254, active = 17, running = 17, steals = 672, tasks = 15, submissions = 264]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 254, active = 17, running = 17, steals = 672, tasks = 15, submissions = 265]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 254, active = 17, running = 17, steals = 672, tasks = 15, submissions = 266]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 254, active = 17, running = 17, steals = 672, tasks = 15, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 254, active = 16, running = 16, steals = 672, tasks = 15, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 254, active = 14, running = 14, steals = 672, tasks = 15, submissions = 268]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 255, active = 19, running = 19, steals = 686, tasks = 16, submissions = 265]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 255, active = 18, running = 18, steals = 686, tasks = 16, submissions = 268]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 255, active = 18, running = 18, steals = 686, tasks = 16, submissions = 269]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 255, active = 18, running = 18, steals = 686, tasks = 16, submissions = 270]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 255, active = 18, running = 18, steals = 686, tasks = 16, submissions = 271]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 256, active = 11, running = 11, steals = 686, tasks = 15, submissions = 275]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 256, active = 8, running = 8, steals = 686, tasks = 15, submissions = 275]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 256, active = 7, running = 7, steals = 686, tasks = 15, submissions = 275]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 23, running = 23, steals = 721, tasks = 15, submissions = 262]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 23, running = 23, steals = 721, tasks = 15, submissions = 263]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 23, running = 23, steals = 721, tasks = 15, submissions = 264]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 23, running = 23, steals = 721, tasks = 15, submissions = 265]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 23, running = 23, steals = 721, tasks = 15, submissions = 266]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 23, running = 23, steals = 721, tasks = 15, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 22, running = 22, steals = 721, tasks = 15, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 21, running = 21, steals = 721, tasks = 15, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 20, running = 20, steals = 721, tasks = 15, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 257, active = 19, running = 19, steals = 721, tasks = 15, submissions = 268]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 258, active = 28, running = 28, steals = 745, tasks = 15, submissions = 261]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 258, active = 27, running = 27, steals = 745, tasks = 15, submissions = 268]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 258, active = 27, running = 27, steals = 745, tasks = 15, submissions = 269]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 258, active = 27, running = 27, steals = 745, tasks = 15, submissions = 270]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 258, active = 27, running = 27, steals = 745, tasks = 15, submissions = 271]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 258, active = 27, running = 27, steals = 745, tasks = 15, submissions = 272]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 258, active = 22, running = 22, steals = 745, tasks = 15, submissions = 274]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 259, active = 22, running = 22, steals = 768, tasks = 18, submissions = 265]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 259, active = 22, running = 22, steals = 768, tasks = 18, submissions = 266]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 259, active = 22, running = 22, steals = 768, tasks = 18, submissions = 267]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 259, active = 22, running = 22, steals = 768, tasks = 18, submissions = 268]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 259, active = 22, running = 22, steals = 768, tasks = 18, submissions = 269]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 259, active = 22, running = 22, steals = 768, tasks = 18, submissions = 271]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 261, active = 16, running = 16, steals = 769, tasks = 18, submissions = 277]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 261, active = 15, running = 15, steals = 769, tasks = 18, submissions = 277]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 261, active = 12, running = 12, steals = 769, tasks = 18, submissions = 277]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 261, active = 11, running = 11, steals = 769, tasks = 18, submissions = 277]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 262, active = 3, running = 3, steals = 771, tasks = 18, submissions = 278]
java.util.concurrent.ForkJoinPool@27addfa1[Running, parallelism = 7, size = 263, active = 2, running = 2, steals = 771, tasks = 18, submissions = 279]
java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked workerat java.util.concurrent.ForkJoinPool.tryCompensate(ForkJoinPool.java:2011)at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3310)at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1775)at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)at com.hx.test11.Test09ParallelStreamRejectEx.lambda$null$1(Test09ParallelStreamRejectEx.java:49)at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747)at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721)at java.util.stream.AbstractTask.compute(AbstractTask.java:316)at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked workerat java.util.concurrent.ForkJoinPool.tryCompensate(ForkJoinPool.java:2011)at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3310)at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1775)at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)at com.hx.test11.Test09ParallelStreamRejectEx.lambda$null$1(Test09ParallelStreamRejectEx.java:49)at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747)at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721)at java.util.stream.AbstractTask.compute(AbstractTask.java:316)at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

并行度[parallelism]和单个线程 parallelStream 可以创建的线程的关系

并行度可以通过 java.util.concurrent.ForkJoinPool.common.parallelism 来进行配置

如下左边为 并行度 parallelism, 右边为 单个线程在 并行度为 $parallelism 的情况下, 可以在 ForkJoinPool 里面创建多个少个线程

默认情况下 parallelism 为你 cpu 的数量[common为 cpu的数量-1], 假设我们这里为 8个cpu, commonPool 的并行度为 7

new ForkJoinPool() 创建出来的 pool 并行度为 8

然后可以大致推测一下, 如果我们是 上传 8 个以上的文件的话, 那么 parallelStream 可能创建的线程数会超过 [parallelism + 256], 这时候可能会抛出 RejectedExecutionException

然后使用我们测试环境, 尝试了一下, 呵呵 果然是这样

        // parallelism : 1 -> 1// parallelism : 2 -> 8// parallelism : 4 -> 16// parallelism : 7 -> 32// parallelism : 8 -> 32// parallelism : 16 -> 64

解决方式

1. 将 parallelStream 修改成为 stream

这样是可以解决问题的, 但是 少了并行处理 似乎上传之后的相关业务处理慢了很多

2. 控制可以并发处理 parallelStream 的线程数量

呵呵 也就是控制能够同时 处理 parallelStream 的这部分业务代码的线程的数量, 使其不超过 commonPool 的限制就行

又或者是 调整 parallelism, 综合来看就是 调整 commonPool 可能创建的线程的数量

但是 这个只适用于临时处理问题, 对于 实际业务情况, 还需要结合实际情况来处理

3. 创建自定义的 ForkJoinPool

呵呵 当时我也很奇怪, 为啥 我创建了一个自己的 ForkJoinPool 然后不管并行度设置的是多少, 然后 导入都灭有这个问题了呢?

呵呵 知道今天 我把 pool 的相关信息打印出来, 然后 大致的比较了一下 commonPool 和 自定义的 ForkJoinPool

我发现 自定义的 ForkJoinPool 是可以增长到超过 [parallelism + 256], 呵呵

然后 再回来仔细看了一下 代码, 发现了这一个 "this == common" 的判断

原来是只有 commonPool 有这个校验, 所以在我们业务场景下面 抛出了 RejectedExecutionException

4. 如果是 parallelStream 里面的业务处理没有依赖关系, 这里的并发处理可以更新为普通的线程池来处理

如果是 parallelStream 里面的相关业务处理 灭有依赖关系, 完全是可以使用 普通的线程池 来处理业务的

使用普通的线程池的话 这样就可以控制线程的数量[资源]了, 更加友好一些吧, 避免创建了 大量的线程

5. 去掉 parallelStream 里面的业务代码使用到 CompletableFuture 的地方

问题的情况是由于基于 commonPool 的 parallelStream 的使用, 以及 parallelStream 里面的业务代码使用到了 CompletableFuture 导致的

上面的 处理方式3, 是去掉了 commonPool, 使用了自定义的 ForkJoinPool, 跳过了 jdk 对于 commonPool 的限制

上面的 处理方式4, 是去掉了 parallelStream, 那么这里 的处理方式就是 避免在 parallelStream 里面使用 CompletableFuture 相关  api

至于实际如何处理, 还得结合你的实际的业务情况, 以上仅供参考

奇怪的调试

1. 旁边变量面板 居然无法解析 tc, pc 等局部变量

2. 暂停所有线程的断点, 居然还有一部分线程在执行?

77 关于 java.util.concurrent.RejectedExecutionException:Thread limit exceeded replacing blocked worker相关推荐

  1. 【ruoyi】java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoo

    前言 ruoyi 4.6.0 jdk1.8 错误 11:48:16.879 [http-nio-9031-exec-25] INFO c.r.f.s.r.UserRealm - [doGetAuthe ...

  2. java.util.concurrent.RejectedExecutionException

    2019独角兽企业重金招聘Python工程师标准>>> 遇到java.util.concurrent.RejectedExecutionException 目前看来,最主要有2种原因 ...

  3. 1]解决java.util.concurrent.RejectedExecutionException

    今天学习了java的并发,线程池,同一时间执行一个操作. 报错:java.util.concurrent.RejectedExecutionException,排查发现是等待队列设小了,导致 拒绝策略 ...

  4. 关于java.util.concurrent.RejectedExecutionException: event executor terminated

    多线程报了个java.util.concurrent.RejectedExecutionException: event executor terminated 线程池的拒绝策略 ThreadPool ...

  5. java.util.concurrent.RejectedExecutionException: event executor terminated 错误分析

    java.util.concurrent.RejectedExecutionException: event executor terminated 错误分析

  6. java util下的并发包_jdk并发包下:使用java.util.concurrent.Executor线程池

    多线程,线程池Executor的接口类图: 其他都不重要,就ExecutorService是主要的: 基本上分为单纯线程池和定时任务线程池: 说白了除了ForkJoinPool所有都继承于Thread ...

  7. 线程池java.util.concurrent.ThreadPoolExecutor总结

    http://uule.iteye.com/blog/1123185 线程池还具有提高系统性能的优点,因为创建线程和清除线程的开销比较大. 有两种不同类型的线程池:一是固定线程数量的线程池:二是可变数 ...

  8. JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor

    http://www.diybl.com/course/3_program/java/javajs/200797/70003.html 在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多 ...

  9. JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecut

    JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecut 在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池. 一 ...

  10. rejected from java.util.concurrent.ThreadPoolExe错误

    2019独角兽企业重金招聘Python工程师标准>>> java.util.concurrent.RejectedExecutionException: Task com.dangd ...

最新文章

  1. GraphQL和REST对比时需要注意些什么
  2. python16进制字节序_第 1 章 套接字、IPv4和简单的客户端/服务器编程
  3. delphi调用c#写的webservice中文出现乱码的问题
  4. java 枚举_Java中的枚举类型(Enum)详解
  5. IntelliJ IDEA开发环境应用
  6. Python花式编程案例锦集(2)
  7. [原创]CAN总线数据计算器V1.01
  8. Visual Studio 2005 中的新增安全性功能
  9. 一天一个小技巧(1)——CSDN编辑器中文字颜色、尺寸、类型修改
  10. java读取手机崩溃日志_Android抓取崩溃日志
  11. [UVA 11374] Airport Express
  12. 测试@Test启动报错解决方案
  13. 嘛:如何远视 还有遥远的未来
  14. java控制台存钱方法_JAVA实现账户取款和存款操作
  15. 一道很水的题(南工校赛决赛第一题)
  16. Verdi/Coverage tool 学习 第3节(常用编译仿真选项篇)
  17. Centos7下下载git
  18. Hybird应用自动化测试
  19. 第一个Android应用程序 (二)
  20. 微信支付服务器软件怎么添加呢,微信APP如何把微信支付添加到手机桌面

热门文章

  1. 解决:uni-app 图片加载不出来
  2. 什么是Liunx?什么是Shell脚本?Liunx的应用、Shell脚本编写与应用
  3. nginx模块之split_clients
  4. matlab差值后求斜率,用三次样条插值求离散点斜率 matlab程序
  5. uni-app 插入视频播放器
  6. 联想新计算机开机黑屏,联想笔记本电脑开机黑屏没反应的原因及解决办法攻略【维修总结】...
  7. 三个问答告诉你aside标签的作用
  8. 亮度对比度色调饱和度最佳_数码教程丨如何仿电影胶片色调与质感?
  9. Kata 在 Kubernetes 中的网络模型
  10. Android 启动过程介绍