如果您尝试将信号量初始化为负值会发生什么
例如
semaphore s = -1;
我知道它没有意义,但我想知道你是否这样做,会得到错误信息,你的程序将无法执行;或者没有错误消息,您将在以后遇到逻辑错误。
正如你所说,它没有意义,因为二进制信号量应该只取值0和1,而计数信号量应该只取非负整数值。但是,为了回答你的问题,我认为程序对信号量初始化为负值的反应将取决于编程语言。
我用C#试一试,我可以这么说
private static Semaphore _pool = new Semaphore(-1, 3);
回报
System.ArgumentOutOfRangeException:'需要非负数。参数名称:initialCount'