jimu-decompiled/sources/com/ubtech/utils/ThreadExecutor.java
2025-05-13 19:24:51 +02:00

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;
}
}