为了账号安全,请及时绑定邮箱和手机立即绑定

命名ExecutorService的线程和线程池

命名ExecutorService的线程和线程池

qq_花开花谢_0 2019-10-25 09:58:19
假设我有一个利用该Executor框架的应用程序Executors.newSingleThreadExecutor().submit(new Runnable(){    @Override    public void run(){        // do stuff    }}当我在调试器中运行此应用程序时,将使用以下(默认)名称创建一个线程:Thread[pool-1-thread-1]。如您所见,这并不是非常有用,而且据我所知,该Executor框架没有提供一种简便的方法来命名已创建的线程或线程池。那么,如何为线程/线程池提供名称呢?例如,Thread[FooPool-FooThread]。
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您可以提供ThreadFactory给newSingleThreadScheduledExecutor(ThreadFactory threadFactory)。工厂将负责创建线程,并将能够为其命名。


引用Javadoc:


创建新线程


使用创建新线程ThreadFactory。如果没有另外指定,Executors.defaultThreadFactory()则使用a,它将创建所有线程,并且所有线程都ThreadGroup具有相同的NORM_PRIORITY优先级和非守护程序状态。通过提供其他参数ThreadFactory,可以更改线程的名称,线程组,优先级,守护程序状态等。如果在ThreadFactory从返回null时要求创建线程失败newThread,执行器将继续执行,但是可能无法执行任何任务


查看完整回答
反对 回复 2019-10-25
  • 2 回答
  • 0 关注
  • 1220 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信