Java 如何使OSGI EventAdmin在多个线程中处理事件

Java 如何使OSGI EventAdmin在多个线程中处理事件,java,multithreading,osgi,Java,Multithreading,Osgi,我正在开发OSGI项目。有许多服务使用事件管理、发送和处理事件。事件管理员似乎在一个线程中处理事件。当激活handleEvent功能时,任何其他句柄事件功能都不会启动,直到运行的handleEvent功能退出。我测试了它的线程睡眠功能 我想知道是否有任何配置或参数使event admin以多线程方式处理事件 我使用的是EclipseNeon3,equinox随附。这取决于您使用的事件管理impl。默认情况下使用20个线程,并且可以配置 您还应该使用eventAdmin.postEvent来确保异

我正在开发OSGI项目。有许多服务使用事件管理、发送和处理事件。事件管理员似乎在一个线程中处理事件。当激活handleEvent功能时,任何其他句柄事件功能都不会启动,直到运行的handleEvent功能退出。我测试了它的线程睡眠功能

我想知道是否有任何配置或参数使event admin以多线程方式处理事件


我使用的是EclipseNeon3,equinox随附。

这取决于您使用的事件管理impl。默认情况下使用20个线程,并且可以配置


您还应该使用eventAdmin.postEvent来确保异步交付。

规范在使用的线程数量上提供了回旋余地。然而,有一种保证可能代价高昂。必须将事件传递给给定的处理程序。这限制了并行交付。您可以注册服务属性
event.delivery=async.unordered
,该属性将删除处理程序的此约束,并允许事件管理员在传递事件时有更多的回旋余地

我发现很难相信Equinox版本只使用一个线程


要了解更多关于事件管理的信息,请阅读教程

我正在使用EclipseNeon3和equinox。我用了postEvent。