mirror of
https://github.com/TeamPiped/Piped-Backend
synced 2025-09-06 05:21:09 +02:00
36 lines
1.1 KiB
Java
36 lines
1.1 KiB
Java
package me.kavin.piped.utils;
|
|
|
|
import java.util.concurrent.ExecutorService;
|
|
import java.util.concurrent.Executors;
|
|
import java.util.concurrent.Future;
|
|
import java.util.function.Supplier;
|
|
|
|
public class Multithreading {
|
|
|
|
private static final ExecutorService es = Executors.newCachedThreadPool();
|
|
private static final ExecutorService esLimited = Executors
|
|
.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 8);
|
|
private static final ExecutorService esLimitedPubSub = Executors
|
|
.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
|
|
|
|
public static void runAsync(final Runnable runnable) {
|
|
es.submit(runnable);
|
|
}
|
|
|
|
public static void runAsyncLimited(final Runnable runnable) {
|
|
esLimited.submit(runnable);
|
|
}
|
|
|
|
public static void runAsyncLimitedPubSub(final Runnable runnable) {
|
|
esLimitedPubSub.submit(runnable);
|
|
}
|
|
|
|
public static ExecutorService getCachedExecutor() {
|
|
return es;
|
|
}
|
|
|
|
public static <U> Future<U> supplyAsync(Supplier<U> supplier) {
|
|
return es.submit(supplier::get);
|
|
}
|
|
}
|