使用Java中的ScheduledExecutorService类来安排一个方法,并使用Timer和Thread来等待执行。以下是代码示例:
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledMethod {
public static void main(String[] args) {
// 创建一个执行者服务,设置线程池大小为1
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
// 安排任务
executorService.schedule(() -> {
System.out.println("任务已经执行");
}, 5, TimeUnit.SECONDS);
// 停止执行者服务
executorService.shutdown();
try {
// 等待任务完成,最长等待5秒
if (!executorService.awaitTermination(5, TimeUnit.SECONDS)) {
// 在5秒内任务没有完成,强制停止执行者服务
executorService.shutdownNow();
}
} catch (InterruptedException e) {
// 等待被中断,强制停止执行者服务
executorService.shutdownNow();
}
}
}
在上面的示例中,我们使用ScheduledExecutorService类来安排并延迟执行任务。我们将任务安排在5秒后执行。然后,我们使用executorService.shutdown()方法停止执行者服务。接下来,我们使用executorService.awaitTermination()方法等待任务完成。如果任务在等待5秒后仍然没有完成,我们就强制停止执行者服务。如果等待过程中被中断,我们也强制停止执行者服务。
上一篇:安排一个带有参数的组合任务
下一篇:安排一个gcloud命令的时间表