在Semaphore vs. Monitors - what's the difference?中,
释放信号量的线程不一定是获得信号量的线程。
如果线程没有获得信号量,那么线程如何释放信号量?
这里的信号量是指在繁忙等待中实现的信号量,还是使用进程阻塞实现的信号量?
谢谢。
发布于 2016-10-28 13:28:39
在许多情况下,获得信号量的线程不能释放它,因为它被阻塞,等待某人释放信号量,而且必须是其他线程释放(信号)信号量。
在忙着等待的情况下实现信号量将是非常糟糕的。与锁不同的是,有些情况下信号保持很长时间(秒或分钟,小时可能有点不寻常,但绝对有可能)。
显然,对信号量对象的引用需要存储在另一个线程可以访问它的地方。
https://stackoverflow.com/questions/40306080
复制相似问题