
io.loli.util.concurrent.TaskExecutor Maven / Gradle / Ivy
The newest version!
package io.loli.util.concurrent;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class TaskExecutor {
public ExecutorService service = null;
public TaskExecutor() {
service = Executors.newFixedThreadPool(20);
}
public TaskExecutor(int threadCount) {
service = Executors.newFixedThreadPool(threadCount);
}
public void execute(Task task) {
service.execute(() -> task.execute());
}
public void execute(final List tasks) {
service.execute(() -> {
for (Task task : tasks) {
task.execute();
}
});
}
public void execute(final List tasks, int groupSize) {
int taskSize = tasks.size();
int groupCount = taskSize / groupSize;
for (int i = 0; i < groupCount; i++) {
int end = groupSize;
if (i == groupCount - 1) {
end = taskSize % groupSize - 1;
}
this.execute(tasks.subList(i * groupSize, end));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy