日期:2014-05-16  浏览次数:20602 次

求助一些关于信号量的问题
我想在web程序中使用信号量,来控制对数据库中的资源的访问。我以数据表的主键来做信号量的标识。

现在有两个问题
1.如果程序在关键区出现错误而没有正确释放信号量,如何处理那些已经获取但无法被释放的信号量和其他等待该资源的进程。
2.请求信号量的数量是否有限制,应该如何设置,超出限制会出现什么。

谢谢
------解决方案--------------------
1.如果程序在关键区出现错误而没有正确释放信号量,如何处理那些已经获取但无法被释放的信号量和其他等待该资源的进程
semop使用SEM_UNDO:进程意外退出时正确地释放信号量。

信号量的数量问题可以通过调整内核参数来解决。