如何使用生菜修复 ForkJoinPool 大小?

问题描述

嗨,我想修复 ForkJoinPool 中的线程数

示例..

 int parallelism = 2;
 ForkJoinPool forkJoinPool = new ForkJoinPool(parallelism);
 forkJoinPool.submit(() -> {
          return IntStream.range(1,10).parallel().peek(i->{
                System.out.println(Thread.currentThread().getName());
           }).sum();
 }).join();

Result----------

2021-01-28 16:56:57.103  INFO 12465 --- [    Test worker] 
ForkJoinPool-1-worker-1
ForkJoinPool-1-worker-0
ForkJoinPool-1-worker-0
ForkJoinPool-1-worker-1
ForkJoinPool-1-worker-1
ForkJoinPool-1-worker-0
ForkJoinPool-1-worker-0
ForkJoinPool-1-worker-1
ForkJoinPool-1-worker-1
2021-01-28 16:56:57.297  INFO 12465 --- 

它很好,但使用 Redis(lettuce)

ValueOperations<String,Object> stringObjectValueOperations = 
                                              redistemplate.opsForValue();
int parallelism = 2; 
ForkJoinPool forkJoinPool = new ForkJoinPool(parallelism);
    forkJoinPool.submit(() -> {
       return IntStream.range(1,10).parallel().peek(i->{
               stringObjectValueOperations.get("TEST");
               System.out.println(Thread.currentThread().getName());
            }).sum();
       }).join();
    }

--- Result 
2021-01-28 17:04:01.867  INFO 13531 --- [    Test worker] 
ForkJoinPool-1-worker-1
ForkJoinPool-1-worker-0
ForkJoinPool-1-worker-2
ForkJoinPool-1-worker-3
ForkJoinPool-1-worker-4
ForkJoinPool-1-worker-6
ForkJoinPool-1-worker-7
ForkJoinPool-1-worker-5
ForkJoinPool-1-worker-11

这太可怕了......非固定线程

我猜是因为它是生菜的相关异步和非块 不过我也不是很清楚

如果固定线程是可能的,请给我一个答案

但是如果固定线程是不可能的,请给我一个确切的原因..我徘徊

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)