説明
1. このモニター: メンバーメソッドで同期されているのはこのモニターであり、メソッド
2で synchronized(this) を使用するのと同じです。クラス モニター: 静的メソッドでの同期はクラス モニターであり、静的メソッドで synchronized(XXX.class)
Instance
public class Main { public synchronized void method1(){ System.out.println(Thread.currentThread().getName()+" method1"); try{ TimeUnit.MINUTES.sleep(5); }catch (InterruptedException e){ e.printStackTrace(); } } public synchronized void method2(){ System.out.println(Thread.currentThread().getName()+" method2"); try{ TimeUnit.MINUTES.sleep(5); }catch (InterruptedException e){ e.printStackTrace(); } } public static void main(String[] args) throws InterruptedException { Main m = new Main(); new Thread(m::method1).start(); new Thread(m::method2).start(); } }を使用するのと同じです。
以上がJavaにはどのような特別なモニターがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。