为什么EventBus需要ThreadLocal作为EventWithHandler



我很困惑,为什么eventbus在这里需要threadlocal?

  /** queues of events for the current thread to dispatch */
  private final ThreadLocal<Queue<EventWithHandler>> eventsToDispatch =
      new ThreadLocal<Queue<EventWithHandler>>() {
    @Override protected Queue<EventWithHandler> initialValue() {
      return new LinkedList<EventWithHandler>();
    }
  };

JUST FORAsycEventBus覆盖方法enqueueEvent和dispatchQueuedEvents??

它用于处理事件的可重入发布——例如,如果一个事件订阅者发布了一个或多个其他事件,它们将进入队列。然后,在事件总线完成处理当前事件后,这些事件可以发布到它们的订阅者

相关内容

  • 没有找到相关文章