Fix: excessive spawning of threads by the GlobalThreadPool

This commit is contained in:
0xb00bface 2023-11-13 19:55:56 +01:00
parent b677fbbc8c
commit 1cf2d35f74
2 changed files with 6 additions and 10 deletions

View File

@ -15,14 +15,13 @@ public abstract class MyFreeCamsAbstractUpdateService extends PaginatedScheduled
MyFreeCamsClient client = MyFreeCamsClient.getInstance();
protected List<MyFreeCamsModel> getModels() {
List<MyFreeCamsModel> models = client.getModels().stream()
.toList();
List<MyFreeCamsModel> models = client.getModels().stream().toList();
for (Model model : models) {
GlobalThreadPool.submit(() -> {
try {
client.getSessionState(model);
model.isOnline(true);
model.isOnline();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (Exception e) {

View File

@ -1,19 +1,16 @@
package ctbrec;
import java.util.UUID;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@Slf4j
public class GlobalThreadPool {
private static final ExecutorService threadPool = Executors.newCachedThreadPool(r -> {
Thread t = new Thread(r);
t.setDaemon(true);
t.setName("GlobalWorker-" + UUID.randomUUID().toString().substring(0, 8));
return t;
});
private static final ExecutorService threadPool = Executors.newWorkStealingPool();
private GlobalThreadPool() {
}