我可以将一个sempahore分配给其他信号量,两者的行为都相同,例如。(此vxworks代码)
mySemId = semCreate(...)
tempSemId = mySemId;
semTake(tempSemId,...);
...
semGive(mySemId).
以上代码段将锁定资源。
其次,如果这是有效的,则存在不允许这种处理的编码标准或实践。
答案 0 :(得分:2)
vxWorks信号量ID是可复制的,副本是"同样好的"作为原始,所以这里显示的代码示例没有错。不过,这似乎并不是一个特别好的主意。很难从这段代码中看出整个代码是什么样的,并且在更大的代码块中,我认为很难分辨出哪些信号量正在被采用以及哪些信号被给定。
(这不是C语言问题:vxWorks信号量主要来自 C ,但不是由语言定义。)