public class ThreadUtils {
private static final String TAG = "ThreadUtils";
private static ThreadFactory sThreadFactory;
private static ExecutorService mPool;
private static ScheduledExecutorService sExecutor;
public ThreadUtils() {
}
// 开线程
public static void runOnBackgroundThread(Runnable runnable) {
if(sThreadFactory==null){
sThreadFactory = new ThreadFactoryBuilder().setNameFormat("eosw-pool-%d").build();
}
if (mPool == null) {
mPool = new ThreadPoolExecutor(8, 16, 2000, TimeUnit.MICROSECONDS, new ArrayBlockingQueue<Runnable>(1000), sThreadFactory);
}
mPool.execute(runnable);
}
// 代替time 定时
public static void timeRunDelay(Runnable runnable) {
if(sThreadFactory==null){
sThreadFactory = new ThreadFactoryBuilder().setNameFormat("eosw-pool-%d").build();
}
if(sExecutor==null){
sExecutor = new ScheduledThreadPoolExecutor(1, sThreadFactory);
}
sExecutor.scheduleAtFixedRate(
runnable,
0,
3 * 1000,
TimeUnit.MILLISECONDS);
}}