当前位置:首页 > 开发 > 编程语言 > 多线程 > 正文

如何给线程池命名

发表于: 2015-07-19   作者:daysinsun   来源:转载   浏览:
摘要:         在系统运行后,在线程快照里总是看到线程池的名字为pool-xx,这样导致很不好定位,怎么给线程池一个有意义的名字呢。参照ThreadPoolExecutor类的ThreadFactory,自己实现ThreadFactory接口,重写newThread方法即可。参考代码如下:     public class Named

        在系统运行后,在线程快照里总是看到线程池的名字为pool-xx,这样导致很不好定位,怎么给线程池一个有意义的名字呢。参照ThreadPoolExecutor类的ThreadFactory,自己实现ThreadFactory接口,重写newThread方法即可。参考代码如下:

   

public class NamedThreadFactory implements ThreadFactory
{
	private static final AtomicInteger POOL_SEQ = new AtomicInteger(1);

	private final AtomicInteger mThreadNum = new AtomicInteger(1);

	private final String mPrefix;

	private final boolean mDaemo;

	private final ThreadGroup mGroup;

	public NamedThreadFactory()
	{
		this("pool-" + POOL_SEQ.getAndIncrement(),false);
	}

	public NamedThreadFactory(String prefix)
	{
		this(prefix,false);
	}

	public NamedThreadFactory(String prefix,boolean daemo)
	{
		mPrefix = prefix + "-thread-";
		mDaemo = daemo;
        SecurityManager s = System.getSecurityManager();
        mGroup = ( s == null ) ? Thread.currentThread().getThreadGroup() : s.getThreadGroup();
	}

	public Thread newThread(Runnable runnable)
	{
		String name = mPrefix + mThreadNum.getAndIncrement();
        Thread ret = new Thread(mGroup,runnable,name,0);
        ret.setDaemon(mDaemo);
        return ret;
	}

	public ThreadGroup getThreadGroup()
	{
		return mGroup;
	}
}

 

 

如何给线程池命名

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
C#线程基础在前几篇博文中都介绍了,现在最后来挖掘一下线程池的管理机制,也算为这个线程基础做个
这篇文章将涉及一个在部署Web应用产品和Web系统性能测试中都会出现的问题:如何决定Web应用的线程池
在部署 web 应用到生产环境,或者在对 web 应用进行性能测试的时候,经常会有人问:如何决定 web 应
一、场景: 在了解了线程状态的转换,以及java提供的线程调度的一些方法之后,我尝试写一个线程池。
最近,由于项目里需要用到线程池来提高处理速度,记录一下spring的taskExecutor执行器来实现线程池
线程池 必须得说点什么 今天在介绍线程池之前,我得来说说上上篇随笔。关于线程的优先级,我们知道
线程池: 一、线程池: 用我的话来说,现在有很多线程任务要执行,比如很多人同时访问ITeye,这是,总
什么是线程池? 诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理
线程池: 一、线程池: 用我的话来说,现在有很多线程任务要执行,比如很多人同时访问ITeye,这是,总
线程池: 一、线程池: 用我的话来说,现在有很多线程任务要执行,比如很多人同时访问ITeye,这是,总
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号