From a828896989bd4b9225af6e52b604c9b18f89358c Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Sat, 19 Dec 2020 20:19:46 +0800 Subject: [PATCH] fix: executor service --- .../src/main/java/org/jackhuang/hmcl/task/FetchTask.java | 5 +++-- .../src/main/java/org/jackhuang/hmcl/task/Schedulers.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java index ecc1041f6..c8b459ecb 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java @@ -51,7 +51,7 @@ public abstract class FetchTask extends Task { this.urls = new ArrayList<>(urls); this.retry = retry; - setExecutor(Schedulers.io()); + setExecutor(download()); } public void setCaching(boolean caching) { @@ -278,7 +278,8 @@ public abstract class FetchTask extends Task { if (DOWNLOAD_EXECUTOR == null) { synchronized (Schedulers.class) { if (DOWNLOAD_EXECUTOR == null) { - DOWNLOAD_EXECUTOR = new ThreadPoolExecutor(0, downloadExecutorConcurrency, 10, TimeUnit.SECONDS, new SynchronousQueue<>(), + DOWNLOAD_EXECUTOR = new ThreadPoolExecutor(0, downloadExecutorConcurrency, 10, TimeUnit.SECONDS, + new LinkedBlockingQueue<>(), runnable -> { Thread thread = Executors.defaultThreadFactory().newThread(runnable); thread.setDaemon(true); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java index b53cab186..7c816a546 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java @@ -47,7 +47,8 @@ public final class Schedulers { if (IO_EXECUTOR == null) { synchronized (Schedulers.class) { if (IO_EXECUTOR == null) { - IO_EXECUTOR = new ThreadPoolExecutor(0, 4, 10, TimeUnit.SECONDS, new SynchronousQueue<>(), + IO_EXECUTOR = new ThreadPoolExecutor(0, 4, 10, TimeUnit.SECONDS, + new LinkedBlockingQueue<>(), runnable -> { Thread thread = Executors.defaultThreadFactory().newThread(runnable); thread.setDaemon(true);