【发布时间】:2014-03-19 10:54:57
【问题描述】:
我有一个多线程应用程序。我有三个共享资源。不同的线程将同时调用这些资源。我需要一个互斥锁。一个互斥体就足够了,还是我应该为每个资源创建一个互斥体?使用多个互斥体时会加快速度吗?
【问题讨论】:
-
没有一个线程一次需要多个资源?
-
不,一个线程一次需要一个资源
标签: ruby multithreading mutex
我有一个多线程应用程序。我有三个共享资源。不同的线程将同时调用这些资源。我需要一个互斥锁。一个互斥体就足够了,还是我应该为每个资源创建一个互斥体?使用多个互斥体时会加快速度吗?
【问题讨论】:
标签: ruby multithreading mutex
如果资源彼此独立,则没有理由用一个 Mutex 来保护它们。您将让其他线程无法访问他们可以安全使用的资源。
如果可能,每个资源使用一个互斥锁。
wrt 性能 - 如果资源受到独立保护而不是拥有一个共享的 Mutex,则访问共享资源的线程更有可能表现良好 - 但它取决于更多的因素而不仅仅是这个。
【讨论】: