FUTEX basierter Arretiermechanismus
-
05-10-2019 - |
Frage
Jemand kann mir sagen, ein Beispiel für die Verwendung der Verriegelungsmechanismus basiert auf futex? (Für muticore x86 CPU, CentOS)
Lösung
Pthreads' mutexes verwenden futexes auf neueren Versionen von Linux implementiert. Pthreads ist die Standard-C-Threading-API auf Linux, und ein Teil ist, der Posix-Standard, so können Sie einfach Port Ihr Programm zu anderen Unix-ähnlichen Systemen. Sie sollten futexes vermeiden, mit direkt, wenn Sie sehr ungewöhnliche Bedürfnisse haben, weil sie sehr schwer sind richtig zu verwenden - Verwendung pThreads oder eine höhere Ebene, sprachspezifische API (die mit ziemlicher Sicherheit pThreads verwenden selbst)
.Andere Tipps
Hier finden Sie aktuelle https://github.com/avsm/ipc-bench . Sie verwenden futex in Shared-Memory-Rohr-Implementierung.
Im Einzelnen können Sie überprüfen, diesen Code .
Arbeitsbeispiel:. PThreads Mutex Verwendung futex Schlösser
Codebeispiel:. Diese innerhalb von Monaten dieses Postens in '10 gemacht wurden, aber immer noch up-to-date
http: //meta-meta.blogspot. com / 2010/11 / linux-Threading-Primitiven-futex.html https://github.com/lcapaldo/futexexamples
Anwendungsfallbeispiel: IPC und Inter-Prozess-Synchronisation ist das einzige Beispiel dafür, warum man eine futex in User-Space verwendet werden soll. Pthread mutexes wird für Multi-Thread arbeitet außer für extreme Fälle, aber Multi-Prozess ist in Hochleistungs-Verriegelungsmechanismen sowie Schlosstypen fehlen.