ThreadFactory timerThreadFactory = new DispatcherThreadFactory(TRIGGER_THREAD_GROUP, "Time Trigger for " + getName(), getUserCodeClassLoader());
/** * This method is called only in constructor to construct thread pools for disk IO threads. */ private void constructThreadPools() { ThreadGroup threadGroup = new ThreadGroup("Disk IO Thread Group"); shuffleServiceConfiguration.getDirToDiskType().forEach((dir, diskType) -> { Integer threadNum = shuffleServiceConfiguration.getDiskTypeToIOThreadNum().get(diskType); Comparator subpartitionViewComparator = shuffleServiceConfiguration.newSubpartitionViewComparator(); BlockingQueue<Runnable> blockingQueue = subpartitionViewComparator != null ? new PriorityBlockingQueue<>(200, subpartitionViewComparator) : new LinkedBlockingQueue<>(); ThreadPoolExecutor threadPool = new ThreadPoolExecutor( threadNum, threadNum, 0L, TimeUnit.MILLISECONDS, blockingQueue, new DispatcherThreadFactory(threadGroup, "IO thread [" + diskType + "] [" + dir + "]")); dirToThreadPool.put(dir, threadPool); }); }
new DispatcherThreadFactory(TASK_THREADS_GROUP, "Async calls on " + taskNameWithSubtask)); this.asyncCallDispatcher = executor;
new DispatcherThreadFactory( TASK_THREADS_GROUP, "Async calls on " + taskNameWithSubtask,
new DispatcherThreadFactory( TASK_THREADS_GROUP, "Async calls on " + taskNameWithSubtask,
new DispatcherThreadFactory( TASK_THREADS_GROUP, "Async calls on " + taskNameWithSubtask,
new DispatcherThreadFactory(TRIGGER_THREAD_GROUP, "Time Trigger for " + getName());
ThreadFactory timerThreadFactory = new DispatcherThreadFactory(TRIGGER_THREAD_GROUP, "Time Trigger for " + getName(), getUserCodeClassLoader());
ThreadFactory timerThreadFactory = new DispatcherThreadFactory(TRIGGER_THREAD_GROUP, "Time Trigger for " + getName(), getUserCodeClassLoader());