2011-07-02 59 views
1

相反的东西有没有Semaphore相反的东西?我在寻找的东西全系统的过程中,独立的多线程的方式使用资源,并没有那么多限制线程是如何使用的资源,我可以用它来计数。 或者我应该考虑使用一个相当高的最大数量的信号量?是否有信号灯

回答

2

信号量可被释放或以任何顺序取得。我建议你在线程开始使用资源时简单地释放信号量,并在完成资源时获取它。

这是假设你需要跨进程通信。如果你不这样做,一定要用计数器变量。

我可以问你为什么这样做?

+0

在http://xxm.sf.net项目中,加载xxm库的IIS处理程序无法完全卸载库,以便在多个w3wp.exe加载/锁定xxl时自动更新它。所以我需要某种IPC,以便不要求1个工作进程的限制。 –

+0

在这种情况下,我所描述的一个信号量就可以工作。在更新程序中,尝试获取信号量。如果您无法阻止,则可以更新文件。请注意,您可能需要一个互斥锁来防止在更新期间加载库。 –

+0

我真正想要的是通过某种同步呼叫,对图书馆“失速”进行新的调用。如果你这样说,我不能在该信号量上使用WaitForSingleObject。你对这个互斥体是对的,但我也可能需要一两个事件。 –