对比多线程 单线程

1

    static  final int Count=10;                //计算Count次
    static final int Number=10_0000_0000;       //Number个数字

在这里插入图片描述

2

    static  final int Count=10;                //计算Count次
    static final int Number=10000;              //Number个数字

在这里插入图片描述

package why;

/**
 * @author :ZXY
 * @date :Created in 2020/4/28 16:13
 * @description:  对比单线程、多线程
 *                  计算Conut次 运行时间
 */

public class Case1 {
    static  final int Count=10;                //计算Count次
    static final int Number=10_0000_0000;       //Number个数字
    //static final int Number=10000;              //Number个数字

    static long sum(){
        long r=0;
        for (long i=0;i<Number;i++){
            r+=i;
        }
        return r;
    }

    static void 单线程(){
        long b=System.nanoTime();

        for (int i = 0; i <Count ; i++) {
            System.out.println(sum());
        }

        long e=System.nanoTime();
        double s=(e-b)/1000_000_000.0;
        System.out.printf("单线程,运行时间:%f%n",s);       //时间秒
    }
    //--------------------------------------------------------------------

    static class SumThread extends Thread{              //线程执行run方法‘6
        @Override
        public void run(){
            System.out.println(sum());
        }
    }

    static void 多线程() throws InterruptedException{
        long b=System.nanoTime();

        Thread[] threads=new Thread[Count - 1];         //本身属于一个线程,创建Count-1个新线程
        for (int i = 0; i <Count-1 ; i++) {             //将线程放到就绪队列
            threads[i]=new SumThread();
            threads[i].start();
        }

        System.out.println(sum());      //自身线程计算

        for (int i = 0; i < Count-1; i++) {             //自身线程结束,等待Count-1个线程
            threads[i].join();
        }

        long e=System.nanoTime();
        double s=(e-b)/1000_000_000.0;
        System.out.printf("多线程,运行时间:%f%n",s);       //时间秒
    }


    public static void main(String[] args) throws InterruptedException {
        //main就算是个线程
        单线程();
        System.out.println("===========================");
        多线程();
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyril-zxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值