【发布时间】:2011-07-19 21:04:25
【问题描述】:
Javadoc for EventListenerLists 表示它们提供“一定程度的 MT 安全性(正确使用时)”。这意味着什么?我看到制作数组的副本可以保护您在开火时不会让东西自行移除,那么在什么情况下会失败?
更具体地说,我正在尝试构建一个 EventBus 来简化多线程应用程序中一些日益复杂的事件传递。我害怕如果多个线程试图触发/响应事件可能会发生什么,我也害怕通过阻塞机制来强制执行安全性,因为我的线程的目的是防止我的 UI 阻塞昂贵的任务。
【问题讨论】:
-
实际上在我看来,就 CPU 访问重新排列而言,它不是线程安全的。不过,可能永远不会在 x86 上观察到它。
-
@bestsss:这不仅仅是你的意见,而是事实。 :-) 说真的,没有
volatile非常草率。 :-(
标签: java multithreading events event-handling