← 2024 · 芯原 · 数字IC设计 笔试

推荐答案 测试一下

Regarding threads, which of the following statements are correct?

A. In fork...join_none, the parent thread can continue execution after any one of the internal blocks completes. B. The disable statement can terminate all threads early C. The fork...join, fork...join_none, fork...join_any blocks are all executed concurrently D. In fork...join_none, the parent thread can continue execution after any one of the internal blocks completes.
单选题 中等 2024秋招笔试真题Online Assessment芯原单选题

参考答案

正确答案为 B。 解析: - A 选项错误。fork...join_none 的特点是父线程不阻塞,立即继续执行,不会等待任何子线程完成。而“等待任何一个内部块完成”是 fork...join_any 的特性。题目中 A 与 D 内容重复,均为错误描述。 - B 选项正确。disable 语句可以用于终止一个命名块或任务中所有活跃的线程,包括 fork 生成的并发线程,因此可以“终止所有线程 early”。需注意 disable 的作用域,但通常该说法成立。 - C 选项错误。fork...join、fork...join_any 和 fork...join_none 是三种不同的并发控制结构,它们的执行是顺序的(例如在一个 initial 块中依次出现),而不是并发执行的。但每个 fork 块内部的多个线程是并发执行的。选项表述含糊且容易误解为这些块本身同时执行,不符合实际。 易错点:混淆 fork...join_none 与 fork...join_any 的行为;误认为 disable 只能终止单个线程;对“并发执行”的理解不准确,未区分块内线程并发与块间顺序执行。

涉及知识点

  • fork...join 线程阻塞机制
  • fork...join_any 特性
  • fork...join_none 特性
  • disable 语句的线程终止作用
  • 并发与顺序执行的区别
← 上一题
登录后反馈错题
下一题 →