记录一个java多线程的使用
来源:互联网 发布:js是什么端语言 编辑:程序博客网 时间:2024/06/06 18:10
public List<String> listThreads(List<String> list, final int nThreads ) {final List<String> fileList = new ArrayList<>();if (list == null || list.isEmpty()) {return null;}//long start = System.currentTimeMillis();int size = list.size();ExecutorService executorService = Executors.newFixedThreadPool(nThreads); // 异步多线程List<Future<String>> futures = new ArrayList<Future<String>>(nThreads);for (int i = 0; i < nThreads; i++) {// 修改多线程少数据的问题,多余的数据由最后一个线程处理final List<String> subList;if (i == (nThreads - 1)) {subList = list.subList(size / nThreads * i, size);} else {subList = list.subList(size / nThreads * i, size / nThreads * (i + 1));}Callable<String> task = new Callable<String>() {public String call() throws Exception {int size = 0;for (String str : subList) {size++;// 执行的代码Thread.sleep(200);// System.out.println(size*nThreads+"/");}return String.valueOf(size);}};futures.add(executorService.submit(task));}//for (Future<String> future : futures) {// ret.append(future.get()); 获得返回结果// ret.length(future.get());//}executorService.shutdown();while (true) {if (executorService.isTerminated()) {//System.out.println("执行完毕,用时 " + String.valueOf((System.currentTimeMillis() - start) / 1000) + " 秒 !");//FileNamesAndNumber.getFileNamesAndNumber(ApiTestManagerForThread.pathname);break;}try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("多线程执行结束");return fileList;}
阅读全文
0 0
- 记录一个java多线程的使用
- 记录Java多线程的同步问题---synchronized关键字的使用
- 关于java多线程的记录
- 一个多线程的日志记录DLL
- 一个记录手机log的多线程类
- java多线程学习10-使用ReentrantReadWriteLock的一个例子
- 一个基础的多线程问题,记录学习多线程
- java多线程的使用
- Java多线程的使用
- Java多线程的使用
- Java多线程的使用
- Java多线程的使用
- JAVA---多线程的使用
- Java多线程的使用
- java多线程的使用
- java多线程的使用
- java多线程的使用
- Java -- 多线程的使用
- tensorflow 安装
- MySQL · 引擎特性 · DROP TABLE之binlog解析
- retrofit_rxjava_okhttp封装类
- MSSQL • 最佳实践 • SQL Server三种常见备份
- 我要怎么学习web知识
- 记录一个java多线程的使用
- 七扭八歪解faster rcnn(keras版)(四)
- MySQL优化---查询优化
- docker主机出现硬盘空间不足的处理办法
- setTimeout与setInterval
- 程序员必知之浮点数运算原理详解
- xml学习笔记②PHP DOM--对xml文件进行解析操作
- 去默认butoon边框
- webpack+ES6+less开发环境搭建(附带视频教程)