From c05444229d674ebcdb0d9931e40cb852307e0f14 Mon Sep 17 00:00:00 2001 From: godotg Date: Wed, 10 Apr 2024 17:43:28 +0800 Subject: [PATCH] feat[event]: custom event thread --- event/src/main/java/com/zfoo/event/anno/Bus.java | 5 ++++- event/src/main/java/com/zfoo/event/manager/EventBus.java | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/event/src/main/java/com/zfoo/event/anno/Bus.java b/event/src/main/java/com/zfoo/event/anno/Bus.java index 6f7c60c0..0a5b488e 100644 --- a/event/src/main/java/com/zfoo/event/anno/Bus.java +++ b/event/src/main/java/com/zfoo/event/anno/Bus.java @@ -22,6 +22,9 @@ public enum Bus { AsyncThread, - VirtualThread; + VirtualThread, + + ManualThread + ; } diff --git a/event/src/main/java/com/zfoo/event/manager/EventBus.java b/event/src/main/java/com/zfoo/event/manager/EventBus.java index 721a7bd7..51668668 100644 --- a/event/src/main/java/com/zfoo/event/manager/EventBus.java +++ b/event/src/main/java/com/zfoo/event/manager/EventBus.java @@ -56,6 +56,12 @@ public abstract class EventBus { * event mapping */ private static final Map, List> receiverMap = new HashMap<>(); + + /** + * custom thread event receiver + */ + public static BiConsumer manualThreadHandler = EventBus::doReceiver; + /** * event exception handler */ @@ -116,6 +122,7 @@ public abstract class EventBus { case CurrentThread -> doReceiver(receiver, event); case AsyncThread -> execute(event.executorHash(), () -> doReceiver(receiver, event)); // case VirtualThread -> Thread.ofVirtual().name("virtual-on" + clazz.getSimpleName()).start(() -> doReceiver(receiver, event)); + case ManualThread -> manualThreadHandler.accept(receiver, event); } } }