详解Java并发工具类Future、Task的应用实例
Java的并发工具类主要包括Future和Task。它们主要用于处理线程间通信和任务管理。
- Future:
Future是Task执行结果的封装,它代表一个异步操作的结果,但这个结果还没有被获取。
应用实例:
// 创建一个Runnable任务
Runnable r = () -> {
// 这里是一个耗时的操作
try {
Thread.sleep(500); // 模拟耗时
} catch (InterruptedException e) {
e.printStackTrace();
}
};
// 使用Future包装任务
Future<Void> future = Executors.newSingleThreadExecutor().submit(r);
// 等待并获取结果
try {
future.get(); // 等待5秒,如果任务未完成,则阻塞
} catch (TimeoutException | ExecutionException e) {
e.printStackTrace();
}
- Task:
Task是Runnable接口的实现,它主要用于定义Java线程应该执行的操作。
应用实例:
// 创建一个Task
Task<String> task = () -> {
// 这里是一个耗时的操作,但任务的主体还是操作
try {
Thread.sleep(500); // 模拟耗时
} catch (InterruptedException e) {
e.printStackTrace();
}
// 返回一个字符串结果
return "Task completed with result: " + System.currentTimeMillis();
};
// 启动任务执行
Thread thread = new Thread(task);
thread.start(); // 启动任务线程执行
总结:Future和Task是Java并发工具中用于异步操作管理和结果获取的两个重要类。
还没有评论,来说两句吧...