微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > fork.......join_none 中线程的执行问题

fork.......join_none 中线程的执行问题

时间:10-02 整理:3721RD 点击:
在绿皮书中,有一段代码:program no_auto;
initial begin
for (int i=0; j<3; j++)
fork
$write(j);
join_none
#0 display("\n");
end
endprogram
这段代码中,为什么执行了for语句,产生线程的时候,为什么不直接打印j的值,而是说#0 阻塞了线程,时延使得当前的线程必须
等到fork....join_none 中的语句执行完以后才得以运行?
谢谢大神解答!

因为fork语句中的线程是不消耗仿真时间,而#0是消耗仿真时间的语句,所以在#0执行之前应该将不消耗仿真时间的线程都执行完才能进入下一个时间点。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top