Example17.2

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

17.2 同期変数

同期化された変数(あるいは縮めて、同期変数)は変数の読み出しと設定用に、get と put 操作を提供します。get 操作は、変数が定義されるまでブロックします。unset 操作は、変数を未定義状態にリセットします。

次は同期変数の標準的な実装です。

 package scala.concurrent
 class SyncVar[A] {
   private var isDefined: Boolean = false
   private var value: A = _
   def get = synchronized {
     while (!isDefined) wait()
     value
   }
   def set(x: A) = synchronized {
     value = x; isDefined = true; notifyAll()
   }
   def isSet: Boolean = synchronized {
     isDefined
   }
   def unset = synchronized {
     isDefined = false
   }
 }

名前:
コメント:
最終更新:2011年02月24日 09:12
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。