我正在尝试将JEE服务迁移到Quarkus,并且想知道如何在Quarkus应用程序中获得线程工厂。只需像JavaSE中那样创建一个javaExecutors.defaultThreadFactory();?
在Java EE环境中,通常使用托管线程工厂来创建要执行的线程:
@Resource
private ManagedThreadFactory mtf;你知道如何在Quarkus应用程序中正确执行此操作吗?
另外:不幸的是,使用ManagedExecutor是不可能的,因为一些库,比如Apache HttpAsyncClient,它的配置需要一个ThreadFactory。
发布于 2019-12-23 03:01:33
除非您有需要创建实际线程的特殊用例,否则我建议您使用Executor而不是ThreadFactory。这通常更好,因为您可以将轻量级工作对象(Runnable/Callable/etc)提交给执行器,它将在执行器的线程池(由Quarkus管理)上运行,而不是创建重量级线程。
Quarkus提供了对MicroProfile上下文传播的支持,这基本上是Java并发性的扩展。要使用它,您可以像这样注入一个ManagedExecutor:
import org.eclipse.microprofile.context.ManagedExecutor;
// ...
@Inject
ManagedExecutor exec;https://stackoverflow.com/questions/59442653
复制相似问题