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

  • 相关阅读:
    Collections集合工具类排序
    集合的学习
    gitee使用方法
    vue 首屏优化
    vue 配置多个路由别名
    vue中的状态管理Vuex
    【Python】Pandas合并表格之(append, join , concat方法)
    elementui中提交表单自动刷新页面的问题
    滴滴实习面试题
    CSS 日常积累
  • 原文地址:https://www.cnblogs.com/eleven24/p/7521611.html
Copyright © 2011-2022 走看看