【问题标题】:How to get number of remaining keys in semaphore?如何获取信号量中剩余键的数量?
【发布时间】:2018-01-31 15:24:29
【问题描述】:

如果在 SystemVerilog 中使用以下方式声明信号量:

  semaphore sem = new(2);

有什么方法可以让进程获取信号量中剩余键的数量信息?

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

【问题讨论】:

    标签: system-verilog


    【解决方案1】:

    因为您从这种方法中得到的答案一旦返回就不再有效。信号量键的管理是你需要围绕它的使用而做的事情。邮箱就是将队列和信号量包装在一起的一个例子。

    恕我直言,信号量是最终用户永远不应直接使用的基类级别原语。

    【讨论】:

    • 这种方法的返回值可能在它返回时就无效的事实在实现真正多线程的语言中可能是真的,我看不出这在 SystemVerilog 中是如何发生的.如果有 get_num_keys() 函数,它将返回而不将控制权传递给任何其他线程,并且返回值将在调用它的函数中有效。
    • @TudorTimi - 除了现在我们开始看到更多的多核实现模拟器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多