スレッドロッキング ルーチンの使用

次のプログラムのエントリ部は、最初にプログラムを実行したスレッドだけがデータを初期化し、それ以後のすべてのスレッドはその初期化済みのデータを利用できることを保証します。

if  first-time = 0
         call "cbl_thread_prog_lock"
        if  first-time = 0
             initialize my-data-division
            move 1 to first-time
        end-if
        call "cbl_thread_prog_unlock"
    end-if

first-time 変数を 2 度チェックしていることに注意してください。最初のチェックは、変数がすでに初期化されていることがわかっている場合に、プログラムをロックするオーバーヘッドを回避するための最適化です。