ee.telekom.workflow.util.NamedPoolThreadFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of workflow-engine Show documentation
Show all versions of workflow-engine Show documentation
Telekom-workflow-engine core provides the runtime environment for workflow execution together with all the supporting services (clustering, persistence, error handling etc).
package ee.telekom.workflow.util;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
public class NamedPoolThreadFactory implements ThreadFactory{
private final ThreadGroup group;
private final AtomicInteger threadNumber = new AtomicInteger( 1 );
private final String namePrefix;
public NamedPoolThreadFactory( String poolName ){
SecurityManager s = System.getSecurityManager();
group = (s != null) ? s.getThreadGroup() :
Thread.currentThread().getThreadGroup();
this.namePrefix = poolName + "-";
}
@Override
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;
}
}