zoukankan      html  css  js  c++  java
  • JAVA多线程编程

    比较JAVA中多线程编程与单线程编程的运行时间(效率)的差异

    代码:

    package thread;

    public class j extends Thread

    {

    private int a[];

    j(int b[])

    {

    a=new int[b.length];

    int len=b.length;

    for(int i=0;i<len;i++)a[i]=b[i];

    }

    public void run()

    {

    int sum=0;

    for(int i=0;i<a.length;i++)sum+=a[i];

    System.out.println("一共相加了"+a.length+"");

    }

    public static void main(String args[])

    {

    long t1=System.currentTimeMillis();

    System.out.println(t1);

    int n=0;

    while(n<1000000)

    {n=(int)(Math.random()*10000000);}

    int a[]=new int[n];

    for(int i=0;i<n;i++)a[i]=(int)Math.random()*100;

    j j1=new j(a);

    try

    {

    j1.start();

    long t2=System.currentTimeMillis();

    System.out.println(t2);

    long t=t2-t1;

    System.out.println("单线程计算所需时间是"+t);

    }

    catch(Exception e)

    {

    e.printStackTrace();

    }

    int b[]=new int[a.length/2];

    for(int i=0;i<b.length;i++)b[i]=a[i];

    int c[]=new int[a.length-b.length];

    for(int i=0;i<c.length;i++)c[i]=a[b.length+i];

    long t3=System.currentTimeMillis();

    System.out.println(t3);

    j j2=new j(b);j j3=new j(c);

    try

    {

    j2.start();j3.start();

    long t4=System.currentTimeMillis();

    System.out.println(t4);

    System.out.println("双线程计算所需时间是"+(t4-t3));

    }

    catch(Exception e)

    {

    e.printStackTrace();

    }

    }

    }

    运行结果:

     

  • 相关阅读:
    Log4j,Log4j2,logback,slf4j日志学习(转)
    MultipartFile类
    @Transactional(转)
    redis序列化和反序列化
    redis常见问题(转)
    为什么说Redis是单线程的以及Redis为什么这么快!(转)
    Numpy 用法小结
    正则表达式使用小结
    Hive 窗口函数、分析函数
    Hive UDF开发实例学习
  • 原文地址:https://www.cnblogs.com/linruier/p/9485224.html
Copyright © 2011-2022 走看看