Механизм блокировки на основе FOTEX
-
05-10-2019 - |
Вопрос
Кто-то может сказать мне пример использования блокировки механизма на основе Futex? (для Muticore X86 CPU, CentOS)
Решение
Мютексы Pthreads реализуются с использованием Fetexes на последних версиях Linux. Pthreads. Стандартная резьба C Threading API на Linux и является частью стандарта POSIX, поэтому вы можете легко портировать свою программу в другие системы Unix-подобных. Вам следует избегать использования FETEXES напрямую, если у вас не очень необычных потребностей, потому что они очень сложно использовать правильно - использовать Pthreads, или более высокий уровень API (который почти наверняка будет использовать себя).
Другие советы
Посмотри на https://github.com/avsm/ippc-bench.. Отказ Они используют Futex в реализации общих труб памяти.
В частности, вы можете проверить Этот код.
Рабочий пример: Pthreads Mutex Используйте Futex Locks.
Пример кода: они были сделаны в течение нескольких месяцев после этого поста 10, но все еще актуальны.
http://meta-meta.blogspot.com/2010/11/linux-threading-primitives-futex.html. https://github.com/lcapaldo/futexexamples.
Использование примера случая: IPC и интервальная синхронизация - единственный пример того, почему нужно использовать Futex в пользовательском пространстве. Mutexes Pthread будет работать для многопоток, за исключением экстремальных случаев, но многопроцесс не хватает в высокопроизводительных блокирующих механизмах, а также типы блокировки.