Это сложный, старый многопоточный вопрос без однозначного ответа.Это действительно зависит от ваших шаблонов использования:
- Много ли обращаются к этим статическим элементам?
- Доступ к этим элементам одновременно одновременно осуществляется несколькими потоками (в отличие от пары)?
- Какие статические элементы используются чаще всего?
- Используются ли вместе несколько статических элементов?
- Включают ли операции в основном чтение?
Ответы на подобные вопросы могут помочь определить, какое решение применить.Например, если вам нужна пропускная способность 1016 *, один мьютекс может быть более эффективным.Если вы хотите минимизировать latency , несколько мьютексов на независимых членах (те, которые не нужно использовать с другим) помогут минимизировать конфликт между потоками.Если чтение является основным действием, вам может даже не потребоваться мьютекс - проверьте pthread_rwlock
.