...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

同期関数

同期関数


同期クラスメンバ関数は、記憶域クラス synchronized で宣言されます。 静的メンバ関数の場合、そのクラスの classinfo オブジェクトによって同期が行われます。つまり、 そのクラスの全ての静的メンバ関数はすべておなじ一つのモニタを使用します。 非静的メンバ関数の場合、 使用されるモニタはオブジェクトごとに用意されます。例えば:

class Foo
{
   synchronized void bar() { ...statements... }
}

は、以下と同等です:

class Foo
{
   void bar()
   {
       synchronized (this) { ...statements... }
   }
}

構造体には同期メンバ関数はありません。

うお,こんなんあったのか.いつからだろ.