futex に基づいたロック機構の使用例を教えてください。(マルチコア x86 CPU、CentOS 用)
3 に答える
Pthreads のミューテックスは、最近のバージョンの Linux では futex を使用して実装されています。Pthreadsは、Linux の標準 C スレッド API であり、Posix 標準の一部であるため、プログラムを他の Unix ライクなシステムに簡単に移植できます。futex を正しく使用するのは非常に難しいため、非常に特殊な必要がない限り、futex を直接使用することは避けてください。
https://github.com/avsm/ipc-benchをご覧ください。共有メモリ パイプの実装で futex を使用します。
具体的には、このコードを確認できます。
実際の例: pthreads ミューテックスは futex ロックを使用します。
コード例: これらは 2010 年のこの投稿から数か月以内に作成されたものですが、最新のものです。
http://meta-meta.blogspot.com/2010/11/linux-threading-primitives-futex.html https://github.com/lcapaldo/futexexamples
使用例: IPC とプロセス間同期は、ユーザー空間で futex を使用する必要がある唯一の例です。pthread ミューテックスは、極端な場合を除いてマルチスレッドで機能しますが、マルチプロセスには高性能ロック メカニズムとロック タイプが欠けています。