【发布时间】:2018-01-31 15:24:29
【问题描述】:
如果在 SystemVerilog 中使用以下方式声明信号量:
semaphore sem = new(2);
有什么方法可以让进程获取信号量中剩余键的数量信息?
没有为semaphore 类定义num 方法/属性,就像为mailbox 类定义的一样,这让我觉得很奇怪。
【问题讨论】:
标签: system-verilog
如果在 SystemVerilog 中使用以下方式声明信号量:
semaphore sem = new(2);
有什么方法可以让进程获取信号量中剩余键的数量信息?
没有为semaphore 类定义num 方法/属性,就像为mailbox 类定义的一样,这让我觉得很奇怪。
【问题讨论】:
标签: system-verilog
因为您从这种方法中得到的答案一旦返回就不再有效。信号量键的管理是你需要围绕它的使用而做的事情。邮箱就是将队列和信号量包装在一起的一个例子。
恕我直言,信号量是最终用户永远不应直接使用的基类级别原语。
【讨论】:
get_num_keys() 函数,它将返回而不将控制权传递给任何其他线程,并且返回值将在调用它的函数中有效。