package com.mogo.utils; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; public class ThreadPoolService { private static final ExecutorService SERVICE = Executors.newFixedThreadPool( 3, new ThreadFactoryImpl() ); private static final ExecutorService SINGLE_THREAD_SERVICE = Executors.newSingleThreadExecutor(new SingleThreadFactoryImpl()); private static class ThreadFactoryImpl implements ThreadFactory { private static int mCounter = 1; @Override public Thread newThread( Runnable r ) { return new Thread( r, "ThreadPoolService - " + mCounter++ ); } } /** * 单线程队列执行的ThreadFactory实现,应该只会new一个Thread */ private static class SingleThreadFactoryImpl implements ThreadFactory{ private static int counter = 1; @Override public Thread newThread(Runnable r) { return new Thread(r, "SingleThread - " + counter++); } } private ThreadPoolService() { } public static void execute( Runnable task ) { SERVICE.execute( task ); } public static void singleExecute(Runnable task) { SINGLE_THREAD_SERVICE.execute(task); } }