← 2022 · 芯海科技 笔试

推荐答案 测试一下

关于线程,以下描述正确的是

A、disable语句可以提前结束所有线程 B、fork...join、fork... join_none、fork...join_any语句块都是以并发方式执行 C、fork...join_none内部的任意一个语句块执行完成之后,父线程才能继续执行 D、fork...join_any内部的所有语句块执行完成之后,父线程才能继续执行
单选题 中等 笔试真题单选

参考答案

正确答案为B。选项A错误,disable语句可以终止指定名称的块或任务(如begin...end或task),但它不能直接结束所有线程;若想结束所有线程,需使用disable fork或配合层次路径。选项B正确,fork...join、fork...join_none和fork...join_any都表示内部语句块以并发(并行)方式启动,区别在于父线程的阻塞行为。选项C错误,fork...join_none不阻塞父线程,父线程在fork语句后立即继续执行,内部子线程在后台运行。选项D错误,fork...join_any在任意一个子线程完成后便让父线程继续执行,而不是等待所有子线程完成。因此,只有B准确描述了并发执行的特性。

涉及知识点

  • SystemVerilog线程并发机制
  • fork...join系列的区别
  • disable语句的作用与限制
← 上一题
登录后反馈错题
下一题 →