System verilog 如何获取信号量中剩余的键数?

System verilog 如何获取信号量中剩余的键数?,system-verilog,System Verilog,如果使用以下命令在SystemVerilog中声明信号量: semaphore sem = new(2); 进程是否有任何方法可以获取信号量中剩余键数的信息 没有为semaphore类定义的num方法/属性,就像为mailbox类定义的方法/属性一样,这让我感到奇怪。因为从这样一个方法得到的答案在返回时就不再有效。信号量密钥的管理是围绕其使用而进行的。邮箱就是这样一个将队列和信号量包装在一起的例子 在IMHO中,信号量是一个基类级原语,最终用户永远不应该直接使用它 在实现了真正多线程的语言

如果使用以下命令在SystemVerilog中声明信号量:

  semaphore sem = new(2);
进程是否有任何方法可以获取信号量中剩余键数的信息


没有为
semaphore
类定义的
num
方法/属性,就像为
mailbox
类定义的方法/属性一样,这让我感到奇怪。

因为从这样一个方法得到的答案在返回时就不再有效。信号量密钥的管理是围绕其使用而进行的。邮箱就是这样一个将队列和信号量包装在一起的例子


在IMHO中,信号量是一个基类级原语,最终用户永远不应该直接使用它

在实现了真正多线程的语言中,这样一个方法的返回值可能一为真就无效,我不知道在SystemVerilog中怎么会发生这种情况。如果有一个
get\u num\u keys()
函数,它将返回而不将控制权传递给任何其他线程,并且返回值在调用它的函数中是有效的。@TudorTimi-但现在我们开始看到更多的多核实现模拟器。