这期内容当中小编将会给大家带来有关java中怎么利用多线程批量执行任务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
import java.util.*; import java.util.concurrent.*; public class TestThread { public static void main(String[] args) throws ExecutionException, InterruptedException { System.out.println("----程序开始运行----"); Date beginTime = new Date(); // 创建一个线程池,容量为3 ExecutorService pool = Executors.newFixedThreadPool(3); List<Future<String>> list = new LinkedList<>(); // 创建10个有返回值的任务 for (int i = 0; i < 10; i++) { Callable c = new MyCallable(i + " "); // 执行任务并获取Future对象 Future f = pool.submit(c); list.add(f); } // 关闭线程池:会在所有任务执行完成后关闭线程池,但并不会阻塞程序运行 pool.shutdown(); // 获取所有并发任务的运行结果 for (Future<String> f : list) { System.out.println(">>>" + f.get()); } System.out.println("----程序结束运行----,程序运行时间【" + (new Date().getTime() - beginTime.getTime()) + " 毫秒】"); } } class MyCallable implements Callable<Object> { private String taskNum; MyCallable(String taskNum) { this.taskNum = taskNum; } public Object call() throws Exception { Date beginTime = new Date(); System.out.println(">>>" + taskNum + "任务开始"); Thread.sleep(new Random().nextInt(5000)); System.out.println(">>>" + taskNum + "任务结束"); return taskNum + "任务耗时:" + (new Date().getTime() - beginTime.getTime()); } }
上述就是小编为大家分享的java中怎么利用多线程批量执行任务了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。