2016-10-07 51 views
0

在我的應用程序中,我們使用事件管理來發布事件,並且有多個事件同時被觸發。這些由事件處理程序處理。在Handler中已經聲明瞭一些私有變量,並在handleEvent()方法中使用。是OSGI事件處理程序線程安全

它會導致任何線程安全問題?在事件處理程序中將變量聲明爲私有線程安全?

回答

4

您的事件處理程序可以同時在不同的線程上調用。所以你必須確保安全地處理對任何字段的訪問。

聲明變量private與線程安全完全無關。不是訪問狀態的重要,而是重要的同時訪問。

您使用synchronized關鍵字,鎖定或無鎖構造來管理訪問。

+0

感謝Peter,所以有可能在服務(類)級別聲明的字段可以同時被訪問和修改,這會導致不確定的行爲,因爲這樣而不是同步或鎖定,我們可以使用方法級別局部變量並使用它。 –

+0

是的,局部變量總是線程安全的。 –