Java 锁基础知识考试

1. wait()方法可以在哪里被执行
A.任意位置
B.【无】锁的代码段里
C.【有】锁的代码段里
2. wait()方法是否释放锁 
A. 释放
B. 不释放
3.假设线程A和B都执行了 obj.wait()方法,现在线程C调用了obj.notify(),那么被唤醒的是哪个线程() 答案 
A. 线程A
B. 线程B
C.线程A和B
D. 随机唤醒
4. 假设class A 有个静态方法a,a方法被synchronized修饰,那么线程A和线程B是否能够同时执行豹不同A实例的方法a ()
A. 可以
B. 不可以
5. 执行notify方法之后,被唤醒的那个线程是否直接获取了锁 ()
A.是
B.不是
6. volatile 关键字保证了内存的可见性。那么 volatile int i = 1; i++; 是否线程安全()
A. 安全
B. 不安全
7. 工作线程是否可以直接操作主内存() 答案 B
A. 可以
B. 不可以
8. Synchronized 与 ReentrentLock都是可重入锁() 


A. 是
B. 不是
9. 请看下面代码,假设运行时A.a()方法抛出了异常,那么锁是否能够释放() 

Lock lock =new ReentrantLock();

public void m() {

 lock.lock(); // block until condition holds

 A.a();

 lock.unlock()

}


释放
不释放
不释放
释放

10题 | 被引用0次

使用此模板创建