并发执行的效率一定比串行执行快?-创新互联

测试主机配置: 为windows10 16核32G、Linux 2核2G、Linux 8核16G、
Cpu型号和核心数,下面已经列出。

创新互联建站主营湘阴网站建设的网络公司,主营网站建设方案,手机APP定制开发,湘阴h5微信小程序开发搭建,湘阴网站营销推广欢迎湘阴等地区企业咨询

在Windows10操作系统下 16核32G操作系统下
在这里插入图片描述
这里我们先给出结论

不同的主机配置,执行结果是不一样的,而且处理不同的任务,结果也是不一样的。所以并发执行效率不一定比串行快。

package demo1;

public class ConcurrencyTest {public static void main(String[] args) throws InterruptedException {int[] arrCount=new int[]{10000,100000,10000000,100000000,1000000000};

        for (int i = 0; i< arrCount.length; i++) {int count = arrCount[i];
            System.out.println("并发累计执行 :"+count+"次");
            concurrency(count);
            serial(count);
            System.out.println("----------------------------");
        }

    }

    private static void concurrency(int count) throws InterruptedException {long start= System.currentTimeMillis();
        Thread thread=new Thread(new Runnable() {@Override
            public 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--;
        }
        thread.join();
        long time = System.currentTimeMillis()-start;

        System.out.println("concurrency :"+time+"ms,b="+b);

    }

    private static void serial(int count){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);
    }

}

在这里插入图片描述

在Linux 2核2G操作系统下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在Linux 8核16G操作系统下:

在这里插入图片描述

在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前题目:并发执行的效率一定比串行执行快?-创新互联
文章起源:http://abwzjs.com/article/cohgop.html