java 多线程执行时长统计
ExecutorService——shutdown方法和awaitTermination方法
shutdown方法:平滑的关闭ExecutorService,当此方法被调用时,ExecutorService停止接收新的任务并且等待已经提交的任务(包含提交正在执行和提交未执行)执行完成。当所有提交任务执行完毕,线程池即被关闭。
awaitTermination方法:接收人timeout和TimeUnit两个参数,用于设定超时时间及单位。当等待超过设定时间时,会监测ExecutorService是否已经关闭,若关闭则返回true,否则返回false。一般情况下会和shutdown方法组合使用。
long startTime = System.currenttime();
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 10; i++) {
final int index = i;
try {
Thread.sleep(index * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
} cachedThreadPool.execute(new Runnable() { @Override
public void run() {
System.out.println(index);
}
});
}
cachedThreadPool.shutdown();
while(!cachedThreadPool.awaitTermination(1,TimeUnit.SECONDS)){
System.out.println("线程池未关闭")
}
System.out.println(System.currenttime()-startTime);
java 多线程执行时长统计的更多相关文章
- java多线程执行时主线程的等待
1.通过thread.join()方式,注意:如果有多个子线程,需要将全部的线程先start,然后再join.代码示例如下: public class Main { public static ...
- Fragment时长统计那些事
注:本文同步发布于微信公众号:stringwu的互联网杂谈 frament时长统计那些事 页面停留时长作为应用统计的北极星指标里的重要指标之一,统计用户在某个页面的停留时长则变得很重要.而Fragme ...
- java 多线程执行过程
1.分支线程执行 过程: 2.线程运行的状态:五大状态 线程: 从新建状态 就绪状态 运行状态 挂起(阻塞)状态 死亡状态(结束,销毁) 3. 多线程:在同一个时间执行多个任务的操作,现在的软 ...
- java中最简单的计算执行时长的方式
日常在做一些性能测试的时候会通过执行时间来判断执行时长,java中最简单的方式如下: //开始时间 long startL= new Date().getTime(); //这里需要导入 java.u ...
- Java 多线程读取文件并统计词频 实例 出神入化的《ThreadPoolExecutor》
重在展示多线程ThreadPoolExecutor的使用,和线程同步器CountDownLatch,以及相关CAS的原子操作和线程安全的Map/队列. ThreadPool主线程 1 import j ...
- JAVA Socket 连接时长
其实关于这个问题可能用到的人不会很多,不过我在这里还是说说. 正常很多人写socket通信时,都会直接通过new socket(IP,PORT)直接去链接服务器.其实这种做法也没有错误,但是若当服务器 ...
- java多线程执行问题
class Demo extends Thread{ public Demo(String name){ super(name); } public void run(){ for(int i=0; ...
- Java 多线程执行
背景: 如果一个任务由多个子任务组成,子任务全部执行完成后然后由主线程对所有子任务结果进行封装,可以采用如下几种方式: 1.基于Guava ListenableFuture 进行: 2.基于Futur ...
- 尚学堂 JAVA DAY12 java程序执行时内存的分配
随机推荐
- 阿里云挂载硬盘(windows)
1.运行:diskmgmt.msc,打开磁盘管理,看到未分配的盘符.点右键,新建简单卷: 2.设置卷大小.根据实际情况可设多设置. 3.分配盘符.格式化: 4.格式化完成: 5.看到了新分区:
- 如何才能在python的路上走得更远
刚开始了新的课程,现在又没有什么心情学习了,不知点解就是提不起兴趣去学习,为什么呢?学习python如何才能提起劲,有什么方法可以提上劲学习?
- 卷积神经网络特征图可视化(自定义网络和VGG网络)
借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么. 自定义网络特征可视化 代码: # coding: utf-8 from keras.m ...
- 使用spark访问hive错误记录
在spark集群中执行./spark-shell时报以下错误: 18/07/23 10:02:39 WARN DataNucleus.Connection: BoneCP specified but ...
- Java日志框架
1.Logback 默认情况下springboot是不将日志输出到日志文件中,这里对日志框架的支持有两种配置方式: application.properties 或 application.yml ( ...
- 微信小程序登录(包括获取不到unionid的情况)
我们一般都是先获取到微信的 unionid,然后再通过 unionid 去登录自己的网站,就可以关联到用户在自己网站上的 user_id,但是在小程序登录中,有时候可以获取到 unionid,有时候获 ...
- org.springframework.orm.hibernate3.HibernateSystemException:
org.springframework.orm.hibernate3.HibernateSystemException: The database returned no natively gener ...
- windows下配置maven
首先下载好maven的压缩包,然后解压到某个目录下,我解压到了D盘 打开readme.txt 1.2步已经完成,第3步的意思是让我们把bin所在的路径添加到系统变量的path中去 第4步意思是确保的你 ...
- Nopcommerce安装,应用及二次开发视频
CSDN课程:http://edu.csdn.net/lecturer/944
- vue---- v-bind指令
v-bind指令用于给html标签设置属性. 基本用法 <div id="app"> <div v-bind:id="id1">文字&l ...