mutex のロックは、コストが高い、ということでしたが、アトミックを使ったほうが、今回の単純なケースでは、速い、ということが解りました。 また、_Atomicを利用した場合のほうが、ソースコードも簡単になります。 pthread_mutex_lockを使うと pthread_mutex_unlock の呼び出しも必要になり、コードが汚くなってしまいます。 ヘッダファイル サンプルコードの意味 2つのスレッドを同時に実行します。 片方の1つのスレッドは、グローバル変数 shared_data をインクリメントし続けます。 もう1つのスレッドは、グローバル変数 shared_data をデクリメントし続けます。 最終的に 0 になることを期待します。 ロックなしのコードは、アトミックに処理できないので、結果は不定です(0かもしれないし、0以外かもしれない)。 pthread_test1_no