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