public class Demo {
public static void main(String[] args) throws Exception {
long l = System.currentTimeMillis();
System.out.println("主线程开始");
//定义集合
List<String> items =new ArrayList<>();
for (int i = 0; i <10; i++) {
items.add(i+"");
}
//不调用线程的方法:耗时10s
for (int i = 0; i < items.size(); i++) {
getName(items.get(i));
}
//test1(items);
//test2(items);
System.out.println("主线程结束");
System.out.println("总耗时+++++++++++:"+(System.currentTimeMillis()-l));
//不让主线程结束,主线程结束,程序就结束了
while (true){}
}
//打印名字
public static void getName(String name) throws InterruptedException {
//模拟业务耗时
Thread.sleep(1000);
System.out.println("输出:"+name);
}
/**
*功能描述 ExecutorService方式,异步同时打印集合名字(验证通过)
* @author LKY
* @date 2024/4/30 0030
* @param items
* @return void
*/
public static void test1(List<String> items)
/**
*功能描述 CompletableFuture.runAsync方式,异步同时打印集合名字(验证通过)
* @author LKY
* @date 2024/4/30 0030
* @param items
* @return void
*/{
for (String item : items) {
ExecutorService xx = Executors.newSingleThreadExecutor();
xx.submit(() -> {
try {
getName(item);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
});
xx .shutdown(); // 使用完毕后关闭线程池
}
}
public static void test2(List<String> items) {
items.forEach(item -> {
CompletableFuture.runAsync(() -> {
try {
getName(item);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
});
});
}`在这里插入代码片`
06-10
1289
04-23
2631
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交