多年來我使用過各種聽衆。最近閱讀Josh Bloch的Effective Java中的併發性章節,他談到了同步添加和刪除偵聽器,但建議改爲使用CopyOnWriteArrayList/Set。註冊和通知偵聽器的實用程序?
最近我使用了JMX MBean通知。 JMX提供了一個可以擴展的基類,NotificationBroadcasterSupport,它爲您提供了相關的方法:addNotificationListener,removeNotificationListener,sendNotification。除了默認的構造函數外,還有一個ExExutor提供了一種簡單的方法來使通知偵聽器異步。據推測,這個類在內部使用類似CopyOnWriteArrayList的內容來避免同步問題(例如,如果監聽者試圖從列表中刪除自己作爲handleNotification方法的一部分)。
這讓我想知道是否有這樣做的一般工具。如果我需要一個註冊和通知監聽器(不涉及JMX)的機制,而不是使用CopyOnWriteArrayList和可能的Executors等自己推出自己的監聽器,那麼如果有一個打包的,經過測試的實用程序會很好。在JDK或Google的常用工具庫中是否存在類似的東西?
不是一個答案或重複,但接受的答案[這個問題](http://stackoverflow.com/questions/4935720/java-what-are-my-options-for-event-notification-in- my-own-api/4935855)表明,讓自己的公司重新使用是最好的選擇。 –