スピンロック
いくつかのオペレーティングシステムは、まずスピンロックを使って、時間がかかるときはスレッドをサスペンドさせるという混合型の手法を用いる。Solarisは現在いずれかのCPUにて実行中のスレッドが所有しているロックを待つ場合はスピンロックを使用する一方、実行中でない(スケジューラ上は実行可能だがCPUに割り当てられていない場合を含む)スレッドが所有するロックを待つ場合はスリープロックを使用する(シングルプロセッサシステムでは常に後者となる)。特に、ロックを所有しているスレッドがプリエンプトされてCPUを失った場合は、そのロックをスピンしながら待っているスレッドをスリープさせることによりデッドロックを防いでいる。一方で、スピン中にロックの状態だけでなくそれを所有しているスレッドの状態も確認しなければならないため、実行コストは純粋なスピンロックよりも高くつく。