サーチ…


構文

  • objectToSynchronizeOn.synchronized { /* code to run */}
  • synchronized {/* code to run, can be suspended with wait */}

オブジェクトに同期する

synchronizedは、複数のスレッドが同じリソースにアクセスするのを防ぐのに役立つ低レベルの同時実行性の構造です。 Java言語を使用したJVMの紹介

anInstance.synchronized {
  // code to run when the intristic lock on `anInstance` is acquired
  // other thread cannot enter concurrently unless `wait` is called on `anInstance` to suspend
  // other threads can continue of the execution of this thread if they `notify` or `notifyAll` `anInstance`'s lock
}

objectの場合、シングルトンインスタンス上ではなく、オブジェクトのクラス上で同期する可能性があります。

これに暗黙的に同期する

 /* within a class, def, trait or object, but not a constructor */
 synchronized {
   /* code to run when an intrisctic lock on `this` is acquired */
   /* no other thread can get the this lock unless execution is suspended with
    * `wait` on `this`
    */
 }


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow