3

我想知道当只有一个线程时使用互斥锁或信号量是否有意义?

谢谢你的帮助。

4

6 回答 6

4

我在我的组件中设计了线程保护,因为它们是可重用和可扩展的组件,旨在在我可以实际预期的任何环境中工作。很多时候,它们最初是在单线程环境中使用的。通常,实现的范围会扩展到包括更多线程。然后我不必追逐资源来保护新的访问场景。

于 2010-06-21T20:45:17.230 回答
1

Mutex 是有意义的,因为 Mutex 可用于系统范围的共享,而不是内部进程范围的共享。例如,您可以使用 Mutex 来防止应用程序被启动两次

于 2010-06-21T20:40:59.190 回答
1

这可能有点过时,但假设您正在编写一个递归函数,并且您希望每个级别都注册一个单独的资源。这样您就可以在一个地方(资源池)负责清理资源。

于 2010-06-21T20:41:52.263 回答
1

听起来像个技巧问题。从技术上讲,是的。命名互斥锁可用于同步多个进程,每个进程包含一个线程。

于 2010-06-21T20:43:09.733 回答
1

您可以使用system-wide semaphores(甚至互斥锁)来执行inter-process communication.

acquire()/release()例如,您可以通过对命名信号量进行 -ing 从单线程进程向另一个单线程进程发出信号。

于 2010-06-21T20:50:22.627 回答
1

如果环境支持系统中断,它会添加非线性行为。信号量可用于在主线程中休眠,直到中断触发。

于 2013-04-11T09:13:52.910 回答