2016-10-07 56 views
0

在我的应用程序中,我们使用事件管理来发布事件,并且有多个事件同时被触发。这些由事件处理程序处理。在Handler中已经声明了一些私有变量,并在handleEvent()方法中使用。是OSGI事件处理程序线程安全

它会导致任何线程安全问题?在事件处理程序中将变量声明为私有线程安全?

回答

4

您的事件处理程序可以同时在不同的线程上调用。所以你必须确保安全地处理对任何字段的访问。

声明变量private与线程安全完全无关。不是访问状态的重要,而是重要的同时访问。

您使用synchronized关键字,锁定或无锁构造来管理访问。

+0

感谢Peter,所以有可能在服务(类)级别声明的字段可以同时被访问和修改,这会导致不确定的行为,因为这样而不是同步或锁定,我们可以使用方法级别局部变量并使用它。 –

+0

是的,局部变量总是线程安全的。 –