An Thread Group Factory work in mutiThread

package thread;

import java.util.concurrent.ThreadFactory;

/**
* Thread Factory with Thread Group, which can work in multi thread env,    
* can create thread by daemon flag, and named each thread in creating.
*    
* @author daniel zhou
*
*/
class ThreadGroupFactory implements ThreadFactory{
   //attributes
   private ThreadGroup _threadGroup;
   private String _namePrefix;
   private boolean _createDaemonFlag;
   private int _numThreads;
   private final Object _synLock = new Object();
    
   //assign the thread group    
   public ThreadGroupFactory(ThreadGroup threadGroup, String namePrefix) {
    
    _threadGroup=threadGroup;
    _namePrefix = namePrefix;
    _numThreads=0;
  }

   //use parent thread group
   public ThreadGroupFactory(String namePrefix) {
    
                 this(Thread.currentThread().getThreadGroup(), namePrefix);
                
        }
    
   //assign the daemon flag
   public void createDaemonThreads( boolean createDaemonFlag){
    
     synchronized(_synLock){
      _createDaemonFlag=createDaemonFlag;
    }
    
  }

  @Override
   public Thread newThread(Runnable r) {
    
    String threadName;
     boolean daemonFlag;
    
     synchronized(_synLock){
      threadName = _namePrefix + ++_numThreads;
      daemonFlag = _createDaemonFlag;
    }
    
    Thread thread = new Thread(_threadGroup, r, threadName);
    thread.setDaemon(daemonFlag);
    
     return thread;
  }
    
}

你可能感兴趣的:(thread,职场,group,factory,休闲)