public void start(Object chanMgrId) {
        threadFactory = new MyThreadFactory(name, isDaemon);
        
        for(int i = 0; i < numThreads; i++) {
	        ArrayBlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(queueSize);
	        ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1,
	                keepAliveTime , TimeUnit.MILLISECONDS, queue, threadFactory);
	        singleThreadedExecutors.add(executor);
        }
    }