如果您尝试将信号量初始化为负值会发生什么情况
例如
semaphore s = -1;
我知道这没有意义,但是我想知道如果您这样做,将会收到错误消息,并且您的程序将无法执行;否则将不会显示错误消息,以后您将面临逻辑错误。
答案 0 :(得分:3)
正如您所说,这是没有意义的,因为二进制信号量仅应采用值0和1,而计数信号量应仅采用非负整数值。 但是,为回答您的问题,我认为程序对初始化为负值的信号量的反应取决于编程语言。
我尝试过使用C#,我可以这么说
private static Semaphore _pool = new Semaphore(-1, 3);
返回
System.ArgumentOutOfRangeException:'非负数为必需。 参数名称:initialCount'