开发过程中经常遇到如下需求,拿到一个list
数据,需要遍历它然后请求第三方接口,然后根据返回结果做一些事
常规写法
public static void main(String[] args) {
List<User> list = getList();
test1(list);
}
//假设有500条数据
static List<User> getList() {
List<User> list = new ArrayList<>();
for (int i = 1; i < 501; i++) {
User user = new User();
user.setIdCard(i + "");
list.add(user);
}
return list;
}
//常规的单线程处理方法
static void test1(List<User> list) {
long start = System.currentTimeMillis();
for (User user : list) {
sendRequest(user);
}
long end = System.currentTimeMillis();
System.out.println("单线程方法,耗时:" + (end - start) + "ms");
}
//模拟请求第三方接口:根据身份证号获取姓名
static void sendRequest(User user){
//模拟接口请求耗时
try {
Thread.sleep(10);
} catch