Events 为什么EventBus需要EventWithHandler的ThreadLocal

Events 为什么EventBus需要EventWithHandler的ThreadLocal,events,event-handling,guava,Events,Event Handling,Guava,我很困惑为什么eventbus需要threadlocal /** queues of events for the current thread to dispatch */ private final ThreadLocal<Queue<EventWithHandler>> eventsToDispatch = new ThreadLocal<Queue<EventWithHandler>>() { @Override

我很困惑为什么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>();
    }
  };
/**当前线程要分派的事件队列*/
私有最终线程本地事件发送=
新ThreadLocal(){
@重写受保护的队列初始值(){
返回新的LinkedList();
}
};

仅用于AsyceEventBus重写方法enqueueEvent和dispatchQueuedEvents???

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

您想到了什么替代方案?