NamedThreadFactory

来源:互联网 发布:手机上做班服的软件 编辑:程序博客网 时间:2024/04/19 21:01
/**
 * 命名的ThreadFactory,方便监控线程
 * 修改自 java.util.concurrent.Executors.DefaultThreadFactory
 */
public class NamedThreadFactory implements ThreadFactory {
        private static final AtomicInteger poolNumber = new AtomicInteger(1);
        private final ThreadGroup group;
        private final AtomicInteger threadNumber = new AtomicInteger(1);
        private final String namePrefix;


        public NamedThreadFactory(String name) {
            SecurityManager s = System.getSecurityManager();
            group = (s != null) ? s.getThreadGroup() :
                                  Thread.currentThread().getThreadGroup();
            namePrefix = name + '-' + poolNumber.getAndIncrement() + "-thread-";
        }


        public Thread newThread(Runnable r) {
            Thread t = new Thread(group, r,
                                  namePrefix + threadNumber.getAndIncrement(),
                                  0);
            if (t.isDaemon())
                t.setDaemon(false);
            if (t.getPriority() != Thread.NORM_PRIORITY)
                t.setPriority(Thread.NORM_PRIORITY);
            return t;
        }
        


}
0 0
原创粉丝点击