SYNC 文は、所定のオブジェクトの相互排除ロックを取得し、文のブロックを実行してロックを解除することで、文のブロックを重要な節として指定する。
一般形式
構文規則
- identifier-1 は参照型とする。
一般規則
- identifier-1 は、ロック対象のオブジェクトを指定する。通常 identifier-1 は、インスタンス変数を保護する場合は SELF キーワードであり、静的変数を保護する場合は (または所定のクラスの静的メソッドに重要な節が含まれる場合は) 型となる。
- statement- block-1 は、重要な節の文を表す。
- オブジェクトをロックすると、同じ実行スレッド内で実行中のコードもそのロックを取得して解放できる。ただし、他のスレッドで実行中のコードは、ロックを取得および解放できない。そのロックは、解除されるまでブロックされる。
例
次の例では、SYNC 文が重要な文のセットをロックする。
method-id Withdraw. procedure division using by value amount as binary-long returning ret as binary-long. sync on self if balance >= amount display "In critical section" compute balance = balance - amount set ret to amount else display "In critical section" set ret to 0 end-if end-sync end method.