OSGI:当一个已经很忙的服务被调用时会发生什么?
OSGI: What happens when an already busy service is called?
假设我有一个包公开了一项需要长时间工作的服务。该服务在 运行 时被调用。新调用会怎样?
- 新调用被忽略了?
- 新的调用被搁置了?
- 调用者遇到异常?
osgi 文档 https://docs.osgi.org/specification/ 似乎没有包含答案。也没有 Apache Felix 和 Apache Karaf 的文档。
调用服务的方式与 java 中的方法调用完全相同。因此,当您在服务已经 运行 时调用服务时,它会在另一个线程中运行代码。
因此,作为开发人员,您必须确保您的代码是线程安全的,或者根据需要进行锁定。
假设我有一个包公开了一项需要长时间工作的服务。该服务在 运行 时被调用。新调用会怎样?
- 新调用被忽略了?
- 新的调用被搁置了?
- 调用者遇到异常?
osgi 文档 https://docs.osgi.org/specification/ 似乎没有包含答案。也没有 Apache Felix 和 Apache Karaf 的文档。
调用服务的方式与 java 中的方法调用完全相同。因此,当您在服务已经 运行 时调用服务时,它会在另一个线程中运行代码。
因此,作为开发人员,您必须确保您的代码是线程安全的,或者根据需要进行锁定。