一、fork…join
需要所有并行线程都结束以后才会继续执行。
二、fork…join_any
会等到任何一个线程结束以后就继续执行。
三、fork…join_none
不会等待任何一个线程就继续执行。
需要注意: fork…join_any 与 fork…join_none 继续执行后,其一些未完成的子程序仍会继续在后台工作!
四、wait fork
会等待所有子程序全部完成。
task test;
fork
command1();
command2();
join_any
fork
command3();
command4();
join_none
wait fork;//会等待command 1-4 全部执行完毕
endtask
五、disable fork
会停止所有未完成的子程序。
task test;
fork
command1();
command2();
join_any
fork
command3();
command4();
join_none
disable fork;//若command1()先执行完,disable fork会直接停止task中剩下的线程
endtask