Executor接口
java.util.concurrent包里面有一个接口Executor。这是执行已提交的Runnable任务的对象。该接口的目的是为了解耦任务提交和任务的实际执行(包括线程使用的细节、调度等)。该接口只定义了一个方法execute(Runnable command),用于将任务提交到执行器中并在未来某个时间执行。
直接用法:
package org.hbin.pool.interfaces;
import java.util.concurrent.Executor;
/**
* Description:
* Author: HaleyHu
* Date: 2025/1/14 10:45
*/
public class ExecutorTest {
static class RunnableTask1 implements Runnable {
@Override
public void run() {
}
}
static class RunnableTask2 implements Runnable {
@Override
public void run() {
}
}
public static void main(String[] args) {
Executor anExecutor = new Executor() {
@Override
public void execute(Runnable command) {
// do something
}
};
Executor executor = anExecutor;
executor.execute(new RunnableTask1());
executor.execute(new RunnableTask2());
}
}
不过,Executor接口并没有严格地要求执行是异步的。简单情况,执行程序可以在调用者线程中立即运行已提交的任务:
import java.util.concurrent.Executor;
public class DirectExecutor implements Executor {
@Override
public void execute(Runnable command) {
command.run();
}