DelayedTask 类提供了一种延时执行任务的功能
import java.util.concurrent.*;
public class DelayedTask {
private ExecutorService executorService;
public DelayedTask() {
executorService = Executors.newSingleThreadExecutor();
}
/**
* 延时指定时间后执行任务
*
* @param delayTime 延时时间(毫秒)
*/
public void delay(long delayTime) {
ConnectResultTask task = new ConnectResultTask();
Future<Integer> future = executorService.submit(task);
try {
// 阻塞等待任务完成或达到指定的延时时间
future.get(delayTime, TimeUnit.MILLISECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
// 处理异常
e.printStackTrace();
}
}
/**
* 关闭延时任务
*/
public void shutdown() {
executorService.shutdown();
}
private static class ConnectResultTask implements Callable<Integer> {
@Override
public Integer call() throws Exception {
// 在这里执行需要延时的操作
// 这里只是一个示例,可以根据实际需求进行修改
Thread.sleep(3000);
return 0;
}
}
}
引用方式如下
public class Main {
public static void main(String[] args) {
DelayedTask task = new DelayedTask();
task.delay(5000); // 延时 5 秒
// 在延时任务执行完成前,这里可以继续执行其他操作
task.shutdown(); // 关闭延时任务
}
}
DelayedTask 类提供了一种通用、灵活且易于使用的方式来实现延时执行任务的功能。它相比于 Handler 的 postDelayed 方法和 Thread.sleep 方法具有更广泛的适用性和更好的性能优势。
具体需要自行验证,这里不做保证。
网友评论