zoukankan      html  css  js  c++  java
  • Java-多线程-Thread类-继承方式

    1、常规的单线程

    package cn.bruce.Thread;
    
    //如何创建和启动一个线程
    //创建Thread子类对象
    //子类对象调用方法start()
    //让线程程序执行,JVM调用线程中的run
    public class MoreThreadDemo {
        public static void main(String[] args) {
            long ss = System.currentTimeMillis();
            SubThread st = new SubThread();
            st.run();// 如果是直接调用run的话还是单线程
            // st.start();
        new Thread(){public void run(){System.out.println("!!!");}}.start();//也可以使用这样的匿名内部类方式开启线程
    long s = System.currentTimeMillis(); long r = fun(45); long e = System.currentTimeMillis(); System.out.println("main..." + (e - s)); System.out.println(r); long ee = System.currentTimeMillis(); System.out.println("result..." + (ee - ss)); } public static long fun(long a) { if (a == 1) { return 1; } else if (a == 2) { return 1; } return fun(a - 2) + fun(a - 1); } } // 定义子类,继承Thread // 重写方法run class SubThread extends Thread { public void run() { long s1 = System.currentTimeMillis(); long r1 = fun1(45); long e1 = System.currentTimeMillis(); System.out.println("run..." + (e1 - s1)); System.out.println(r1); } public static long fun1(long a) { if (a == 1) { return 1; } else if (a == 2) { return 1; } return fun1(a - 2) + fun1(a - 1); } }

     需要6874ms

    2、开辟一个线程后

    package cn.bruce.Thread;
    
    //如何创建和启动一个线程
    //创建Thread子类对象
    //子类对象调用方法start()
    //让线程程序执行,JVM调用线程中的run
    public class MoreThreadDemo {
        public static void main(String[] args) {
            long ss = System.currentTimeMillis();
            SubThread st = new SubThread();
            // st.run();// 如果是直接调用run的话还是单线程
            st.start();//开辟线程运行
            long s = System.currentTimeMillis();
            long r = fun(45);
            long e = System.currentTimeMillis();
            System.out.println("main..." + (e - s));
            System.out.println(r);
            long ee = System.currentTimeMillis();
            System.out.println("result..." + (ee - ss));
        }
    
        public static long fun(long a) {
            if (a == 1)
            {
                return 1;
            } else if (a == 2)
            {
                return 1;
            }
            return fun(a - 2) + fun(a - 1);
        }
    
    }
    
    // 定义子类,继承Thread
    // 重写方法run
    class SubThread extends Thread {
        public void run() {
            long s1 = System.currentTimeMillis();
            long r1 = fun1(45);
            long e1 = System.currentTimeMillis();
            System.out.println("run..." + (e1 - s1));
            System.out.println(r1);
        }
    
        public static long fun1(long a) {
            if (a == 1)
            {
                return 1;
            } else if (a == 2)
            {
                return 1;
            }
            return fun1(a - 2) + fun1(a - 1);
        }
    }

     只需要4042ms了

  • 相关阅读:
    JavaWeb
    申请百度开发者账号
    秋招C++面试相关总结索引
    游戏开发客户端
    Python源码剖析——02虚拟机
    Python源码剖析——01内建对象
    Pymongo 笔记
    调用其他文件__name__=='__main__'下代码
    Python 相关
    Python import本地模块
  • 原文地址:https://www.cnblogs.com/BruceKing/p/13554459.html
Copyright © 2011-2022 走看看