当前位置: 首页 > 知识库问答 >
问题:

番石榴事件总线内存限制

漆雕升
2023-03-14

我用一个订阅者实现了一个单例EventBus。我的应用程序有很多生产者(任何请求都可以是生产者)。

@Bean
public EventBus eventBus() {
    EventBus eventBus = new EventBus();
    eventBus.register(new MyEventHandler());
    return eventBus;
}

我找不到如何为EventBus设置事件数限制(如何为EventBus设置内存限制),以及如果生成的事件数大于EventBus容量会发生什么。

我想抛出一个异常来记录失败。

共有1个答案

闻人和泽
2023-03-14

无需设置内存限制。它是安全的,因为EventBus是无状态工作的。

在单个线程中,每次EventBus.post()完成后,EventBus都会清理事件队列,因此在单个线程中是安全的。

在多线程中,EventBus为每个线程使用独立的事件队列。

 类似资料:
  • 我变得非常喜欢Google Gauva的EventBus,以至于我想把它包含在我的Swing GridBagBuilder API中。我们的目标是获取一个Swing组件,在任意事件中用它做一些事情,并将其订阅到EventBus。问题是我认为EventBus完成的反射操作不喜欢我的任意事件类型的泛型。 本质上,该方法接受双消费者,其中C是Swing组件,E是订阅EventBus的任意事件类型。 事件

  • 有人能提到——如果可能的话解释一下——我在使用番石榴事件总线时需要考虑的与线程相关的问题吗?当我订阅了一个Android活动并用(@Subscribe)注释了它的一个方法,然后从另一个线程发布了一个事件时,我得到了一个异常,该事件没有被发送。 (我知道我需要在UI线程上更新UI,这不是我所说的。该事件不是事件分派!) 编辑:下面是一个例子: post:(在网络线程中运行) 订阅:(活动中的方法,活

  • 问题内容: 刚刚发现了Guava库项目。 这些与GWT兼容吗? 问题答案: 从该页面的介绍性PDF中, 您可以在…上使用这些库。 在JDK 6上 在Android上, 我们认为。需要志愿者来帮助我们进行测试。 在Google App Engine上, 我们认为。需要志愿者来帮助我们进行测试。 在GWT上-参差不齐! 由于GWT的JDK库支持 可能参差不齐,也许是2/3,所以到目前为止,这些库中的东

  • 问题内容: 我想知道哪个更有效,为什么? 1) 要么 2) 问题答案: 我看不出您为什么要在此处使用builder的任何原因: 比在这种情况下制作一个更具可读性, 不会推断通用类型,并且在用作单行代码时必须自己指定类型, (来自docs) 在与另一个不可变集合调用时 做得很好( 尝试避免在安全的情况下实际复制数据 ), (从源) 调用以前创建的,同时避免为零元素和一元素集合创建任何列表(分别返回空

  • 我想为番石榴设个坑(http://pitest.org/)进行突变熟练度测试,但我在尝试运行时出现以下错误。这是我得到的错误: 基本上,要么PIT没有检测到测试,要么测试在PIT中运行不正常,所有测试都失败了。我读了这篇文章:JUnit测试通过,但PIT说套件不是绿色的,我认为“您的代码库是否包含可变静态状态?(例如在单例中)”是问题所在,但我不知道如何修复它。如果测试套件有一些隐藏的顺序依赖关系

  • 我的 Spark 版本是 2.2.0,它在本地工作,但在具有相同版本的 EMR 上,它给出了以下异常。