我正在尝试将 JEE 服务迁移到Quarkus,并想知道如何在 Quarkus 应用程序中获取线程工厂。简单地创建一个像javaExecutors.defaultThreadFactory();JavaSE 中那样的吗?
在 Java EE 环境中,您通常会使用托管线程工厂来创建执行线程:
@Resource
private ManagedThreadFactory mtf;
Run Code Online (Sandbox Code Playgroud)
知道如何在 Quarkus 应用程序中正确执行此操作吗?
添加:遗憾的是,使用 ManagedExecutor 是不可能的,因为某些库(例如 Apache HttpAsyncClient)需要 ThreadFactory 进行配置。
除非您有需要创建实际线程的特殊用例,Executor否则我建议使用ThreadFactory. 这通常更好,因为您可以向 Executor 提交轻量级工作对象(Runnable/ Callable/etc),并且它将在 Executor 的线程池(由 Quarkus 管理)上运行,而不是创建重量级线程。
Quarkus 提供对 MicroProfile Context Propagation 的支持,这基本上是 Java EE 并发的扩展。ManagedExecutor要使用它,您可以像这样注入:
import org.eclipse.microprofile.context.ManagedExecutor;
// ...
@Inject
ManagedExecutor exec;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5173 次 |
| 最近记录: |