From 61fdc8f64d13dd9a349584e595c12c1a03cb6c73 Mon Sep 17 00:00:00 2001 From: Starryi Date: Thu, 14 Apr 2022 18:12:00 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-69776=20=E5=88=87=E6=8D=A2=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E7=BB=84=E4=BB=B6=E7=9A=84=E6=8E=92=E5=BA=8F=EF=BC=8C?= =?UTF-8?q?=E4=BC=9A=E5=8A=A0=E8=BD=BD=E5=BE=88=E4=B9=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 使用了固定容量阻塞列表,导致资源加载阻塞 【改动思路】 使用LinkedBlockingQueue 【review建议】 --- .../ui/online/resource/OnlineResourceManager.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/share/ui/online/resource/OnlineResourceManager.java b/designer-form/src/main/java/com/fr/design/mainframe/share/ui/online/resource/OnlineResourceManager.java index b29ea11db..ecdea13fe 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/share/ui/online/resource/OnlineResourceManager.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/share/ui/online/resource/OnlineResourceManager.java @@ -1,8 +1,8 @@ package com.fr.design.mainframe.share.ui.online.resource; import javax.swing.SwingWorker; -import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; import java.util.function.Predicate; /** @@ -24,7 +24,7 @@ public class OnlineResourceManager { private SwingWorker swingWorker; - private final BlockingQueue loaderBlockingQueue = new ArrayBlockingQueue(100); + private final BlockingQueue loaderBlockingQueue = new LinkedBlockingQueue<>(); public void cancelLoad(Object key) { if (swingWorker != null) { @@ -39,11 +39,7 @@ public class OnlineResourceManager { } public void addLoader(ResourceLoader loader) { - try { - this.loaderBlockingQueue.put(loader); - } catch (InterruptedException e) { - e.printStackTrace(); - } + this.loaderBlockingQueue.add(loader); } public void loadImage() {