在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2008|回复: 4

[求助] 关于fork join_none语句问题

[复制链接]
发表于 2021-4-20 19:30:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

   fork  join_none语句如下:
      fork         线程1;
         线程2;
         线程3;
   join_none
   语句1;
   语句2;

   请问该段代码的执行顺序是:创建线程1,创建线程2,创建线程3,执行语句1(执行语句1过后是执行语句2还是执行线程1,线程2,线程3再执行语句2)?









发表于 2021-4-20 20:02:27 | 显示全部楼层
fork join_none不会阻塞父线程的运行,直到父线程遇到耗时语句的时候才会开始运行fork join_none中的内容。
所以你这个如果语句1和语句2的执行是不消耗时间的,那么执行顺序应该是 语句1 语句2 线程123
 楼主| 发表于 2021-4-21 17:09:12 | 显示全部楼层


Cruisers 发表于 2021-4-20 20:02
fork join_none不会阻塞父线程的运行,直到父线程遇到耗时语句的时候才会开始运行fork join_none中的内容。 ...


好的,那如果遇到耗时的语句,例如延时是10us,执行完fork  join_none中的语句需要15us,那当fork  join_none中的语句执行到10us的时候,是执行父线程中的语句,还是执行完fork  join_none里面的语句再执行父线程的语句?
发表于 2021-4-21 18:48:50 | 显示全部楼层
其实语句1和线程23是并行的。线程1起来以后,就顺序往下到语句1了,同时启动线程2和3。你的问题是前者,但其实延时10us也是一个顺序进程的语句呢。语句1其实可以是延时10us这么一个命令。
发表于 2021-4-22 11:17:01 | 显示全部楼层
1.线程1
2.线程2
3.线程3
4.语句1->语句2
其中,1~4标号后面的同时执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-28 18:39 , Processed in 0.016242 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表