Example17.2

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
   }
 }

名前:
コメント:

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月24日 09:12
ツールボックス

下から選んでください:

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