meccanismo di bloccaggio base futex
-
05-10-2019 - |
Domanda
Qualcuno può dirmi un esempio di utilizzo meccanismo di bloccaggio base di futex? (Per muticore CPU x86, CentOS)
Soluzione
mutex Pthread sono realizzati tramite futexes sulle recenti versioni di Linux. Pthread è l'API C filettatura standard su Linux, e fa parte dello standard Posix, in modo da poter facilmente porta il programma ad altri sistemi Unix-like. Si dovrebbe evitare di utilizzare futexes direttamente a meno che non si hanno esigenze molto particolari, perché sono molto difficili da usare correttamente - uso pthreads, o un di più alto livello, API specifiche della lingua (che sarà quasi certamente utilizzare pthreads si)
.Altri suggerimenti
Dai un'occhiata alla https://github.com/avsm/ipc-bench . Usano futex nell'attuazione del tubo memoria condivisa.
In particolare, è possibile controllare questo codice .
esempio di lavoro:. Pthreads uso mutex serrature futex
esempio di codice:. Questi sono stati realizzati pochi mesi di questo post nel '10, ma sono ancora in up-to-date
http: //meta-meta.blogspot. com / 2010/11 / linux-threading-primitive-futex.html https://github.com/lcapaldo/futexexamples
dei casi d'uso ad esempio: IPC e sincronizzazione tra processi sono l'unico esempio del perché si dovrebbe usare un futex in userspace. pthread mutex funzionano per multi-thread salvo casi estremi, ma multi-processo è privo di meccanismi di bloccaggio ad alte prestazioni, nonché tipi di blocco.