同步方法在执行前需要获得一个锁。当同步方法是实例方法时,锁是在调用方法的对象上;当同步方法是静态(类)方法时,锁是在方法所在的类上。
举一反三
- 下列关于多线程中的静态同步方法说法中,正确的是() A: 静态同步方法的锁不是this,而是该方法所在类的class对象 B: 静态同步方法的锁既可以是this,也可以是该方法所在类的class对象 C: 一个类中的多个静态同步方法可以同时被多个线程执行 D: 不同类的静态同步方法被多线程访问时,线程间需要等待
- 在Java语言中,同步方法需要用到关键字()。对于同步方法而言,无须指定同步锁,它的同步锁是方法所在的对象,也就是关键字()。
- 下列关于同步方法的描述中,正确的是( ) A: 同步方法在某一时刻只允许一个线程访问 B: 同步方法也有锁,它的锁就是当前调用该方法的对象 C: 同步方法也可以是静态方法 D: 同步方法可以节省资源,提高效率
- 当一个同步方法已经执行,线程能够调用对象上的非同步实例方法吗?
- 调用阻塞等待方法wait(),调用错误的是( )。 A: 在同步方法中调用 B: 在同步语句中调用 C: 在已取得对象锁的地方调用 D: 在未取得对象锁的地方调用