如何在固定线程池中获取线程的名称

时间:2013-12-13 20:28:43

标签: java multithreading threadpool

我试图在run方法中显示正在运行的线程的名称。这些线程是在固定的线程池中创建的:

ExecutorService e = Executors.newFixedThreadPool(size);

Java API对我没有帮助,我该怎么做?

此外,知道如何自定义池中这些线程的名称会很棒。

1 个答案:

答案 0 :(得分:2)

以下是回答两个问题的示例:

    ExecutorService es = Executors.newFixedThreadPool(4, new ThreadFactory() {
        private final AtomicInteger counter = new AtomicInteger(1);
        @Override
        public Thread newThread(Runnable r) {
            return new Thread(r, "MyThread-" + counter.getAndIncrement());
        }
    });
    es.submit(new Runnable() {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName());
        }
    });

ThreadFactory是为了救援!请注意,线程不需要具有唯一名称。