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

  • 相关阅读:
    js实现中文转拼音
    JS中的call、apply、bind方法
    python 过滤html方法
    css 多出一行或多行后显示...的方法
    js 中文排序
    eclipse小技巧
    npm安装及webpack打包小demo
    zan扩展安装
    vagrant安装centos7
    centos7 nginx访问目录403解决
  • 原文地址:https://www.cnblogs.com/eleven24/p/7521611.html
Copyright © 2011-2022 走看看