Кто-нибудь может сказать мне пример использования механизма блокировки на основе futex? (для процессора muticore x86, CentOS)Механизм блокировки на основе Futex
ответ
Мьютексы Pthreads реализованы с использованием futexes в последних версиях Linux. Pthreads является стандартным API-интерфейсом C для потоковой передачи данных в Linux и является частью стандарта Posix, поэтому вы можете легко переносить свою программу на другие Unix-подобные системы. Вы должны избегать использования futexes напрямую, если у вас нет очень необычных потребностей, потому что их очень сложно использовать правильно - используйте pthreads или API-интерфейс более высокого уровня, специфичный для языка (который почти наверняка будет использовать сами pthreads).
Посмотрите на https://github.com/avsm/ipc-bench. Они используют futex в реализации общей памяти.
В частности, вы можете проверить this code.
рабочий пример: mutex pthreads использовать блокировки futex.
Пример кода: они были сделаны в течение нескольких месяцев после этого сообщения в 10-м году, но все еще актуальны.
http://meta-meta.blogspot.com/2010/11/linux-threading-primitives-futex.html https://github.com/lcapaldo/futexexamples
случай использования Пример: МПК и синхронизация между процессами являются единственным примером того, почему следует использовать futex в пользовательском пространстве. Мьютексы pthread будут работать для нескольких потоков, за исключением крайних случаев, но в многопроцессном режиме отсутствуют механизмы блокировки высокой производительности, а также блокировки.
Что относительно последней версии CentOS 5.5? Мутетексы Pthreads на CentOS 5.5 реализованы с использованием futexes? Спасибо – Dima
Futexes были использованы pthreads во всех дистрибутивах Linux начиная с 2004 года, когда были приняты ядра серии 2.6. Это включает CentOS. Я не понимаю, почему вам нужно беспокоиться о них, хотя ... они в значительной степени являются деталями реализации. – Doug
, потому что мне нужно использовать блокировки в очень критическом для времени пути к серверному приложению (место, где все данные прошли). Я думаю, что лучше использовать какой-то «быстрый» механизм блокировки ... – Dima