地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

スピンロックの思い出(?)

社内勉強会でスピンロックという単語が出てきてずっと前にユーザー空間アプリケーションでスピンロックを使おうとしてレビューで反対されたというのを思い出した。その時はDBMSなんかが排他制御にpthread_mutexを使わず、独自にユーザー空間のspinlockを実装してるみたいなのを読んでコード書いてたなくらいの考えだったと思う。指摘内容はスケジュールはカーネルに任せましょうくらいの理解。(ロックを保持したスレッドがCPU待ちになって、スピンロックの解放を待つ側のスレッドは、ロックの解放をビジーループで待つため、CPU時間を多く使用するという自体が発生しうる。何がしたいねんということになってしまう。)

ユーザ空間でのスピンロック実装はLinus Torvaldsが比較的最近言及していたものを見つけた。強い言葉での否定が多々あるがなるほどなぁという感想でした。

www.realworldtech.com