Вопрос

Кто-то может сказать мне пример использования блокировки механизма на основе 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 будет работать для многопоток, за исключением экстремальных случаев, но многопроцесс не хватает в высокопроизводительных блокирующих механизмах, а также типы блокировки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top