zoukankan      html  css  js  c++  java
  • 多线程中join方法的含义

    1、作用:调用这个方法的时候,主进程会在这里停住,等待该线程进行完毕再继续往下执行。

    如:不使用join的情况:

    <?php
    
    class Join extends Thread
    {
        public function run()
        {
            sleep(3);
            echo __FUNCTION__ . PHP_EOL;
        }
    }
    
    $join = new Join();
    $join->start();
    
    echo 'just a test' . PHP_EOL;
    

     输出:

    just a test
    run
    

     使用join:

    <?php
    
    class Join extends Thread
    {
        public function run()
        {
            sleep(3);
            echo __FUNCTION__ . PHP_EOL;
        }
    }
    
    $join = new Join();
    $join->start();
    $join->join();
    
    echo 'just a test' . PHP_EOL;
    

      输出:

    run
    just a test
    

      我们可以发现,使用join的时候,最后的echo语句需要等待线程运行完毕再运行。

    2、为什么要join?

    想想这样一种情况,线程执行时间过长,而且在要在后续代码中使用线程运行结果,

    这样我们就可以使用join,防止主线程比子线程先结束,或者后续代码在线程结束之前就运行了从而获取不到线程处理结果。

    3、使用join会导致进程阻塞,这个阻塞并不是目的,只是表现。并不是为了阻塞线程而使用join。

    4、fork/join

  • 相关阅读:
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战01
    C语言寒假大作战02
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    20199101 2019-2020-2 《网络攻防实践》综合实践
  • 原文地址:https://www.cnblogs.com/eleven24/p/7521611.html
Copyright © 2011-2022 走看看