Domanda

Qualcuno può dirmi un esempio di utilizzo meccanismo di bloccaggio base di futex? (Per muticore CPU x86, CentOS)

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top