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

最新文章

  1. TFS工作项数据统计及相关数据库结构分析
  2. Linux实现ftp账号同时访问两个目录方法
  3. 《Python 学习手册4th》 第十三章 while和for循环
  4. 马上着手开发Mac应用程序
  5. docker container link
  6. PHP问题Parse error: syntax error, unexpected end of file in
  7. Oracle的三种高可用集群方案
  8. c# 对象 &amp; 类
  9. iOS开发 支付之银联支付集成
  10. MySQL性能调优——索引详解与索引的优化
  11. 获取sd卡空间大小和获取sd卡目录
  12. MATLAB 统计不同区间中元素的个数
  13. hdu1506单调栈的宽度
  14. requests 请求几个接口 出现’您的账户在其它设备使用过,为保障安全,需重新登入才能在本设备使用‘
  15. Android Studio 3.0找不到Android Device Monitor
  16. JavaScript实现禁用键盘和鼠标的点击事件
  17. vue - 子路由-路由嵌套
  18. PKU 3020 Antenna Placement(拆点+最小边覆盖)(最大匹配)
  19. 关于.net和java des加密
  20. ACE_Message_Block功能简介

热门文章

  1. 【Python入门总结】
  2. MobSF 框架安装使用部署
  3. HDU 5672 String
  4. 对scrum站立会议的理解
  5. 虚拟机Centos设置静态IP
  6. 【C】树
  7. 小程序 switch按钮
  8. java 基础 --集合--013
  9. Android手机Fiddler真机抓包
  10. angular 延迟更新方法