zoukankan      html  css  js  c++  java
  • 线程流程理解

    1.只要线程thread.start()执行了,程序立刻就多了一个执行的分支。并且这个分支会单独持续的运行下去。

    thread.start()后面的代码会继续沿着另一条分支向下执行。

    也就是,两条分支,各自持续运行

    比如:

    复制代码
    public class AppMain {
    
        public static void main(String[] args) throws InterruptedException {
            // TODO Auto-generated method stub
            long start = System.currentTimeMillis() ;
            System.out.println();
            ArrayList<Thread> arrayList = new ArrayList<>();
            for(int i = 0;i<100;i++)
            {
                myThread m1 =  new myThread();
                        m1.start();
                        m1.join();
                myThread2 m2 = new myThread2();
                        m2.start();
                        m2.join();
            }
            long end = System.currentTimeMillis();
            long endure = end-start;
            System.out.println("耗时:"+endure);
        }
    
    }
    复制代码

    输出:

    Thread-172 :1111 : 111
    Thread-173 :2222 : 222
    Thread-174 :1111 : 111
    Thread-175 :2222 : 222
    Thread-176 :1111 : 111
    Thread-177 :2222 : 222
    Thread-178 :1111 : 111
    Thread-179 :2222 : 222
    Thread-180 :1111 : 111
    Thread-181 :2222 : 222
    Thread-182 :1111 : 111
    Thread-183 :2222 : 222
    Thread-184 :1111 : 111
    Thread-185 :2222 : 222
    Thread-186 :1111 : 111
    Thread-187 :2222 : 222
    Thread-188 :1111 : 111
    Thread-189 :2222 : 222
    Thread-190 :1111 : 111
    Thread-191 :2222 : 222
    Thread-192 :1111 : 111
    Thread-193 :2222 : 222
    Thread-194 :1111 : 111
    Thread-195 :2222 : 222
    Thread-196 :1111 : 111
    Thread-197 :2222 : 222
    Thread-198 :1111 : 111
    Thread-199 :2222 : 222
    耗时:68

    如果不采用join()方法的话,会先执行完main线程,子线程继续执行。则不会正确打印出耗时时间

    输出如下:

    Thread-181 :2222 : 222
    Thread-182 :1111 : 111
    Thread-183 :2222 : 222
    Thread-184 :1111 : 111
    Thread-185 :2222 : 222
    Thread-186 :1111 : 111
    Thread-187 :2222 : 222
    Thread-188 :1111 : 111
    Thread-189 :2222 : 222
    Thread-190 :1111 : 111

    耗时:68----------------------------------会发现主线程先执行完了
    Thread-191 :2222 : 222
    Thread-192 :1111 : 111
    Thread-193 :2222 : 222
    Thread-194 :1111 : 111
    Thread-195 :2222 : 222
    Thread-196 :1111 : 111
    Thread-197 :2222 : 222
    Thread-198 :1111 : 111
    Thread-199 :2222 : 222

  • 相关阅读:
    CentOs 7.3下ELK日志分析系统搭建
    01 使用Git基本方法
    02 网页换肤
    运行代码
    01 使用JavaScript原生控制div属性
    excel 删除了自动保存的文件,如何恢复
    Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法!
    eclipse启动错误
    centos已安装gcc 4.8.2,gcc -version 也是4.8.2 但是被其他工具调用时,显示未调用4.8.2
    centos 6.4安装cmake
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6133251.html
Copyright © 2011-2022 走看看