java多线程Future和Callable类示例分享
作者:hebedich 时间:2021-09-02 09:49:37
一,描写叙述
在多线程下编程的时候。大家可能会遇到一种需求,就是我想在我开启的线程都结束时,同一时候获取每一个线程中返回的数据然后再做统一处理,在这种需求下,Future与Callable的组合就派上了非常大的用场。
也有人会说,我能够使用同步来完毕这个需求啊,普通情况下确实能够。可是在一种特殊情况下就不行了:
想象,你开启了多个线程同步计算一些数据,可是大家都知道,线程是会争用资源的,也就是说。你开启多个线程来同步计算数据时。事实上线程之间的计算顺序是不可空的,当然除非你非非常大周折去处理也不无可能。在这样的情况下。Future和Callable的组合就是不二之选了。
二,样例
这两个类的样例事实上非常easy,主要就看自己在实际运用中能不能找到他们的用武之地了。上代码:
package test;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class FetureCallableTest {
private static ExecutorService service = Executors.newFixedThreadPool(100);
private static int count = 1;
public static void main(String[] args) throws InterruptedException, ExecutionException {
int sum = 0;
for(int i = 0; i < 100; i++) {
Future<Integer> future = service.submit(new Callable<Integer>(){
@Override
public Integer call() throws Exception {
System.out.println(Thread.currentThread().getName());
return ++count;
}
});
int f = future.get();
sum += f;
System.out.println("future is " + f);
}
System.out.println("sum is " + sum);
service.shutdownNow();
}
}
标签:java多线程,Future,Callable
0
投稿
猜你喜欢
java使用@Scheduled注解执行定时任务
2021-09-16 08:37:16
java开发ShardingSphere的路由引擎类型示例详解
2023-11-29 01:18:56
Struts2学习教程之拦截器机制与自定义拦截器
2021-10-27 13:02:56
Java Web Fragment在项目中使用方法详解
2022-04-11 14:17:38
在springboot中如何使用filter设置要排除的URL
2022-11-06 00:06:01
Spring Data Jpa 复杂查询方式总结(多表关联及自定义分页)
2023-11-21 10:01:27
Android实现表情功能
2023-03-05 06:46:27
IDEA中的.iml文件和.idea文件夹
2023-11-23 11:47:19
java15新功能的详细讲解
2023-08-23 04:40:21
WinForm实现最小化到系统托盘方法实例详解
2023-10-05 05:53:30
JWT.net 操作实践方法
2022-04-09 16:01:28
利用Spring Session和redis对Session进行共享详解
2021-10-18 18:22:45
Java基于Tcp的基础聊天功能实例
2023-11-25 05:26:56
java 抛出异常处理的方法
2023-05-12 21:55:54
详解Java中的泛型
2021-12-02 14:57:34
Java使用Collections.sort对中文进行排序方式
2021-09-17 15:05:46
Spring占位符Placeholder的实现原理解析
2023-03-14 18:14:00
Android App后台服务报告工作状态实例
2023-04-26 19:10:34
C#几种截取字符串的方法小结
2023-07-16 09:55:10
Spring的事务机制实例代码
2021-09-11 07:46:23