この前調べごとをしているときにpthread_spinlockなるものがあることを知った. その時にpthread_mutex_lockとどちらを使えばいいんだろう?と疑問に思ったので少し調べてみた. 結果から言えば,たいていの場合はpthread_mutex_lockで良い,という安易な結果になってしまった. /*--- 以下詳細 ---*/ 一般論ではロック期間が短いときにspinlockのほうが良い、といわれるので期間が短いロックにおける簡単な性能評価を行った. 使ったプログラムは以下. https://github.com/maropu/lockbench 単一アドレス上に存在する値を同期的にインクリメントするだけの簡単なプログラム.評価指標はthread数(# of threads/x-axis)を変化させた場合の,clock()が返す単体tickあたりの平均インクリメント回数(
![最近のCPUの同期性能を調べてみた - maropuのメモ墓場](https://cdn-ak-scissors.b.st-hatena.com/image/square/0c685c6c453579e4b1a44786ae2ae067b3a5c853/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmaropu%2F20111126%2F20111126235538.jpg)