Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多线程访问的单实例、同步和非同步方法_Java - Fatal编程技术网

Java 多线程访问的单实例、同步和非同步方法

Java 多线程访问的单实例、同步和非同步方法,java,Java,这里我的问题是:我有一个类有两个方法,一个是非静态同步的,另一个是非静态非同步的。现在,两个线程试图同时访问同步和非同步方法的同一实例。如果线程一首先访问非静态同步方法,会发生什么?当第一个线程对同一实例应用锁时,第二个线程是否可能访问同一实例的非静态非同步方法 感谢Chandra是的,第二个线程可以访问非同步方法。访问该方法不需要锁,任何线程都可以这样做。如果两种方法都采用以下格式。 1.静态和同步。必须等待类级别的锁 2.非静态和同步。如果线程A正在访问非静态同步方法,则必须等待对象级锁定,

这里我的问题是:我有一个类有两个方法,一个是非静态同步的,另一个是非静态非同步的。现在,两个线程试图同时访问同步和非同步方法的同一实例。如果线程一首先访问非静态同步方法,会发生什么?当第一个线程对同一实例应用锁时,第二个线程是否可能访问同一实例的非静态非同步方法


感谢Chandra

是的,第二个线程可以访问非同步方法。访问该方法不需要锁,任何线程都可以这样做。如果两种方法都采用以下格式。 1.静态和同步。必须等待类级别的锁
2.非静态和同步。如果线程A正在访问非静态同步方法,则必须等待对象级锁定

,即使如此,任何数量的线程都将能够访问非静态非同步方法