Created
November 30, 2013 07:33
-
-
Save yangl/7716377 to your computer and use it in GitHub Desktop.
带前缀命名的线程工厂,来自dubbo。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.alibaba.rocketmq.common; | |
import java.util.concurrent.ThreadFactory; | |
import java.util.concurrent.atomic.AtomicInteger; | |
/** | |
* 带前缀命名的线程工厂 | |
* | |
* @author YAGNLiiN<[email protected]> | |
* @since 2013-05-23 | |
*/ | |
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()); | |
} | |
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(); | |
} | |
@Override | |
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; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment