多线程一定快吗
来源:互联网 发布:软件测试核心期刊 编辑:程序博客网 时间:2024/06/02 08:34
下面的代码演示串行和并发执行并累加操作的时间,请分析:下面的代码并发执行一定比串行执行快吗?
package chapter01;//并发和单线程执行测试public class ConcurrencyTest { /** 执行次数 */private static final long count=10000l;public static void main(String[] args) throws InterruptedException{concurrency();serial();}//并发计算private static void concurrency() throws InterruptedException{long start=System.currentTimeMillis();Thread thread=new Thread(new Runnable() {@Overridepublic void run() {int a=0;for(long i=0;i<count;i++){a+=5;}}});thread.start();int b=0;for (long i = 0; i < count; i++) {b--;}long time=System.currentTimeMillis()-start;thread.join();System.out.println("concurrency :" + time + "ms,b=" + b);}//单线程计算private static void serial(){long start=System.currentTimeMillis();int a=0;for(long i=0;i<count;i++){a+=5;}int b=0;for (long i = 0; i < count; i++) {b--;}long time=System.currentTimeMillis()-start;System.out.println("serial:" + time + "ms,b=" + b + ",a=" + a);}}上述问题的答案是“不一定”,测试结果如表1-1所示。
从表1-1可以发现,当并发执行累加操作不超过百万次时,速度会比串行执行累加操作要慢。那么,为什么并发执行的速度会比串行慢呢?这是因为线程有创建和上下文切换的开销。
注:本文源自《Java并发编程的艺术》一文。
阅读全文
0 0
- 多线程一定快吗
- 多线程一定快吗
- 多线程一定快吗?
- NET真的一定比JAVA快吗?
- java多线程的效率就一定高吗?
- 多线程一定比单线程效率更高吗?
- python多线程快在哪里?
- Java 多线程入门大全(适用于有一定基础者)
- 1 Java 多线程入门大全(适用于有一定基础者)
- Java 多线程入门大全(适用于有一定基础者)
- 同步代码快:解决多线程安全问题
- 多线程为什么比单线程快呢?
- 多线程加速快排(java)
- ForkJoinPool java1.7 多线程快排
- 分数一定是有理数吗?
- 私有数据一定安全吗?
- 并发效率一定高吗
- RAII资源管理一定没问题吗?
- [已解决]Ubuntu安装libssl-dev失败
- WIN10连接远程桌面(以阿里云服务器为例)
- 对数据结构和算法的简单理解总结
- Spark成长之路(1)-搭建环境
- Hadoop平台搭建-ubuntu下
- 多线程一定快吗
- Quartz分布式任务(二)
- 005. Spring 自动装配
- 每段时间Android开发10个知道(初级系列)-170622
- poj 3176 Cow Bowling
- 智能指正和强弱指针的实现
- 返回顶部
- secureCRT 日志保存并记录每条记录的时间
- java面试题之JDK和JRE的区别是什么?