IT用語集 › プログラミング › スピンロック

スピンロック

プログラミング Svenska → 更新: 2026-10-21

眠らずにループで何度も確認しながら待つロック。待つ間、CPUを燃やし続ける。

スレッドを眠らせて起こすにはコンテキストスイッチのコストがかかる。クリティカルセクションがそれより短いなら、起きたまま待つ方が得だ。そのためカーネル内では、数命令で終わる区間が多く、スピンロックが標準的に使われる。

危険な点は二つある。シングルコアでは、ロック保持者が並行して動けない限り無意味で、待つ側のスピンが、待たれている当のプロセスを止めてしまう。またユーザー空間ではスケジューラがいつでもロック保持者からCPUを取り上げられ、待機側はタイムスライスを丸ごと空回りさせる。だからそこではミューテックスを使う。どのみち速い経路はfutex経由で処理される。

← 用語集に戻る