5.串行执行和并发执行的效率对比
2023-06-13 09:14:00 时间
并发执行利用了线程的手段,可以提高执行效率,这里用一个简单的例子来进行简单对比
1.串行执行
public class ThreadDemo2 {
private static long count = 100_0000_0000L;
public static void main(String[] args) {
// serial();
concurrency();
}
//1.如果采用串行执行 大概是10s
private static void serial() {
long bed = System.currentTimeMillis();//时间戳//1970年1月1日0时0分0s为基准时刻,计算按当时的时刻和基准时刻之间的秒数只差
int a = 0;
for (long i = 0; i < count; i++){
a++;
}
int b = 0;
for (long i = 0; i < count ;i++){
b++;
}
long end = System.currentTimeMillis();
System.out.println("time:" + (end-bed) + "ms");
}
}
串行执行的方法效率较低,此程序运行结果为: 可以看待时间为:8369ms
2.并发执行(线程)
public class ThreadDemo2 {
private static long count = 100_0000_0000L;
public static void main(String[] args) {
serial();
concurrency();
}
//2.创建线程来并发执行完成 3858ms
private static void concurrency() {
long beg = System.currentTimeMillis();
//匿名内部类
Thread t1 = new Thread(){
@Override
public void run() {
int a = 0;
for (long i = 0; i < count; i++){
a++;
}
}
};
Thread t2 = new Thread(){
@Override
public void run() {
int b = 0;
for (long i = 0; i < count; i++){
b++;
}
}
};
t1.start();
t2.start();
try {
//线程等待,让主线程等待t1和t2执行结束,然后再继续往下执行
t1.join();
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
System.out.println("time:"+ (end-beg) + "ms");
}
}
利用线程来并发执行的方法效率较高,此程序运行结果为: 可以看待时间为:3858ms
相关文章
- 谷歌CEO:裁员等手段,提高公司运行效率20%。。。
- 使用Linux通配符,提高文件处理效率(linux通配符的使用)
- Linux高性能编程:提升效率的最佳实践(linux高并发编程)
- 据存储提升效率:Redis实现高并发数据存储(redis并发数)
- MySQL时间函数:提高数据库效率(mysql数据库时间函数)
- 式索引MySQL索引:有效优化查询效率(mysql缩影)
- Oracle升级了并发性能,大幅提升数据库操作效率(oracle更新并发)
- 运算效率最高提升20倍!30多个项目落地!英特尔AI百佳创新激励计划持续加速AI生态突破发展
- SQL Server表名前缀: 提升查询效率(sqlserver表前缀)
- MSSQL中表变量的效率提升之道(mssql 表变量效率)
- 使用Oracle内连接索引优化查询效率(oracle 内连接索引)
- MySQL实现表之间的关联,提高数据查询效率学习MySQL,让你轻松掌握两个表之间的关联方法
- MySQL批量提交优化C语言编程效率(c mysql批量提交)
- MySQL多并发下C开发效率提升之道(c++ mysql多并发)
- 标题使用JPAOracle注解提高数据库操作效率(jpa oracle注解)
- 多线程并发执行Redis操作提升效率(多线程下执行redis)
- TP框架与Redis结合,提升开发效率(tp如何结合redis)
- Sqlite常用函数封装提高Codeeer的效率