如果您尝试将信号量初始化为负值会怎样?

时间:2019-04-14 19:37:33

标签: initialization semaphore

如果您尝试将信号量初始化为负值会发生什么情况

例如

semaphore s = -1;

我知道这没有意义,但是我想知道如果您这样做,将会收到错误消息,并且您的程序将无法执行;否则将不会显示错误消息,以后您将面临逻辑错误。

1 个答案:

答案 0 :(得分:3)

正如您所说,这是没有意义的,因为二进制信号量仅应采用值0和1,而计数信号量应仅采用非负整数值。 但是,为回答您的问题,我认为程序对初始化为负值的信号量的反应取决于编程语言。

我尝试过使用C#,我可以这么说

private static Semaphore _pool = new Semaphore(-1, 3);

返回

  

System.ArgumentOutOfRangeException:'非负数为必需。   参数名称:initialCount'