多线程一定快吗?
来源:互联网 发布:短信矩阵密码 编辑:程序博客网 时间:2024/06/02 11:00
package com.itmyhome.test;/** * 测试并发执行和串行执行的效率 * @author TracyMcGrady * */public class ConcurrencyTest {private static final long count=100000000; public static void main(String []args){ try {concurrency();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} serial(); } //并发执行 private static void concurrency() throws InterruptedException{ long start=System.currentTimeMillis(); Thread thread=new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub int a=0; for(long i=0;i<count;i++){ a+=5; //System.out.println("a="+a); }}}); thread.start(); int b=0; for(long i=0;i<count;i++){ b--; //System.out.println("b="+b); } //在一个线程中调用thread.join(),将等待thread执行完后才继续本线程。 thread.join(); long time=System.currentTimeMillis()-start; 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); }}
统计结果如下:
从上表可以看出,当并发执行累加操作不超过1千万次时(也取决于你的机器配置),速度会比串行操作更慢。那么为什么并发执行速度会比串行慢呢?这是因为线程有创建
和上下文的开销。
阅读全文
1 0
- 多线程一定快吗
- 多线程一定快吗
- 多线程一定快吗?
- NET真的一定比JAVA快吗?
- java多线程的效率就一定高吗?
- 多线程一定比单线程效率更高吗?
- python多线程快在哪里?
- Java 多线程入门大全(适用于有一定基础者)
- 1 Java 多线程入门大全(适用于有一定基础者)
- Java 多线程入门大全(适用于有一定基础者)
- 同步代码快:解决多线程安全问题
- 多线程为什么比单线程快呢?
- 多线程加速快排(java)
- ForkJoinPool java1.7 多线程快排
- 分数一定是有理数吗?
- 私有数据一定安全吗?
- 并发效率一定高吗
- RAII资源管理一定没问题吗?
- 欢迎使用CSDN-markdown编辑器
- pcl中添加kinect2驱动包libfreenect2的grabber
- 关于微信公众号开发config:invalid signature错误的解决方法
- C语言实现猜数字游戏
- 类与对象的关系?
- 多线程一定快吗?
- 图像处理与计算机视觉 基础、经典以及最近发展
- Android零基础入门第18节:EditText的属性和使用方法
- ThinkPhp5下使用restful风格路由导致跨域put请求失效解决办法
- CentOS或Linux下使用yum安装配置和使用svn
- 1038. 统计同成绩学生(20)
- Python 中赋值和分片拷贝的区别
- 深入学习Java之LinkedList
- (八)Android的动画机制