我认为总是建议为线程命名,以便以后更容易调试。
在我的SpringBoot项目中,我现在使用@Async
表示法,稍后使用TaskExecutor
,但找不到命名我的线程的方法。
有没有办法做到这一点,或者没有真正在Spring抽象中完成?
答案 0 :(得分:3)
TaskExecutor
是一个直接从Java Executor
扩展的功能接口。根据文件:
执行提交的Runnable任务的对象。 此界面 提供了一种将任务提交与如何提交的机制分离的方法 将运行每个任务,包括线程使用的详细信息,日程安排, 等
这意味着不可能(也不应该要求)为您的线程命名,因为您不负责启动和管理它。也就是说,出于调试目的,如果要提供某些名称,则应通过设置threadNamePrefix
和/或threadGroupName
属性来对线程池本身执行此操作。
答案 1 :(得分:2)
您可以在任务执行程序配置中使用线程前缀conf属性,或者如果前缀不够,则可以使用@Bean
public TaskExecutor threadPoolTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setThreadNamePrefix("my_thread_prefix");
executor.setThreadFactory( new ThreadFactoryBuilder().setNameFormat("my-thread-%d").build())
executor.initialize();
return executor;
}
Uncaught SyntaxError: Unexpected token ,
Uncaught ReferenceError: openCity is not defined
at HTMLButtonElement.onclick (sortsearch?sortby=HightoLow&rankingsortby=HightoLow&searchItem=&criteria=:92)
at sortsearch?sortby=HightoLow&rankingsortby=HightoLow&searchItem=&criteria=:1495
Uncaught SyntaxError: Unexpected token }