Fifo workers

This commit is contained in:
Andrea Cavalli 2023-03-29 16:33:33 +02:00
parent 003799b468
commit 3180b751ef

View File

@ -37,11 +37,11 @@ import org.jetbrains.annotations.Nullable;
public class StreamUtils { public class StreamUtils {
public static final ForkJoinPool LUCENE_POOL = newNamedForkJoinPool("Lucene"); public static final ForkJoinPool LUCENE_POOL = newNamedForkJoinPool("Lucene", false);
public static final ForkJoinPool GRAPH_POOL = newNamedForkJoinPool("Graph"); public static final ForkJoinPool GRAPH_POOL = newNamedForkJoinPool("Graph", false);
public static final ForkJoinPool ROCKSDB_POOL = newNamedForkJoinPool("RocksDB"); public static final ForkJoinPool ROCKSDB_POOL = newNamedForkJoinPool("RocksDB", false);
private static final Collector<?, ?, ?> TO_LIST_FAKE_COLLECTOR = new FakeCollector(); private static final Collector<?, ?, ?> TO_LIST_FAKE_COLLECTOR = new FakeCollector();
private static final Collector<?, ?, ?> COUNT_FAKE_COLLECTOR = new FakeCollector(); private static final Collector<?, ?, ?> COUNT_FAKE_COLLECTOR = new FakeCollector();
@ -59,13 +59,13 @@ public class StreamUtils {
private static final Function<Object, Void> FINISHER = x -> null; private static final Function<Object, Void> FINISHER = x -> null;
private static final Collector<Long,?, Long> SUMMING_LONG_COLLECTOR = new SummingLongCollector(); private static final Collector<Long,?, Long> SUMMING_LONG_COLLECTOR = new SummingLongCollector();
public static ForkJoinPool newNamedForkJoinPool(String name) { public static ForkJoinPool newNamedForkJoinPool(String name, boolean fifo) {
final int MAX_CAP = 0x7fff; // max #workers - 1 final int MAX_CAP = 0x7fff; // max #workers - 1
return new ForkJoinPool( return new ForkJoinPool(
Math.min(MAX_CAP, Runtime.getRuntime().availableProcessors()), Math.min(MAX_CAP, Runtime.getRuntime().availableProcessors()),
new NamedForkJoinWorkerThreadFactory(name), new NamedForkJoinWorkerThreadFactory(name),
null, null,
true, fifo,
0, 0,
MAX_CAP, MAX_CAP,
1, 1,