当前位置:  开发笔记 > 编程语言 > 正文

是不是可以为ForkJoinPool提供线程库或名称模式?

如何解决《是不是可以为ForkJoinPool提供线程库或名称模式?》经验,为你挑选了1个好方法。

我想为工作窃取池使用的ForkJoinPool的线程设置名称,由.提供

ExecutorService newWorkStealingPool(int parallelism)

要么

ExecutorService newWorkStealingPool()

到目前为止,我找不到在这个线程上设置自定义名称ExecutorService的方法,有没有办法?

newWorkStealingPool()基本上提供了一个ForkJoinPool,但ForkJoinPool也没有提供名称模式的公共构造函数.

更新:我现在发现这个构造函数 ForkJoinPool需要一个线程工厂ForkJoinPool.ForkJoinWorkerThreadFactory.但是工厂应该返回a ForkJoinWorkerThread,它没有公共构造函数.所以我想我必须继承ForkJoinWorkerThread.



1> Morten Haral..:

这似乎是所需的最低代码,重用现有的默认工厂:

final ForkJoinWorkerThreadFactory factory = new ForkJoinWorkerThreadFactory()
{
    @Override           
    public ForkJoinWorkerThread newThread(ForkJoinPool pool)
    {
        final ForkJoinWorkerThread worker = ForkJoinPool.defaultForkJoinWorkerThreadFactory.newThread(pool);
        worker.setName("my-thread-prefix-name-" + worker.getPoolIndex());
        return worker;
    }
};

forkJoinPool = new ForkJoinPool(Runtime.getRuntime().availableProcessors(), factory, null, false); 

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有