47 lines
1.3 KiB
Java
47 lines
1.3 KiB
Java
package com.ubtech.utils;
|
|
|
|
import android.util.Log;
|
|
import java.util.concurrent.Callable;
|
|
import java.util.concurrent.ExecutorService;
|
|
import java.util.concurrent.Future;
|
|
import java.util.concurrent.FutureTask;
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class ThreadExecutor {
|
|
private static ThreadExecutor c;
|
|
private String a = "ThreadExecutor";
|
|
private ExecutorService b;
|
|
|
|
private ThreadExecutor() {
|
|
this.b = null;
|
|
if (this.b == null) {
|
|
int min = Math.min(3, (int) ((Runtime.getRuntime().availableProcessors() * 1.2d) + 1.0d));
|
|
this.b = new ThreadPoolExecutor(min, min, 10000L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue());
|
|
}
|
|
}
|
|
|
|
public void a(Runnable runnable) {
|
|
if (this.b.isShutdown()) {
|
|
Log.i(this.a, "ExecutorService was already shutdown!");
|
|
} else {
|
|
this.b.execute(runnable);
|
|
}
|
|
}
|
|
|
|
public <T> Future<T> a(Callable<T> callable) {
|
|
FutureTask futureTask = new FutureTask(callable);
|
|
this.b.execute(futureTask);
|
|
return futureTask;
|
|
}
|
|
|
|
public static ThreadExecutor a() {
|
|
if (c == null) {
|
|
c = new ThreadExecutor();
|
|
}
|
|
return c;
|
|
}
|
|
}
|