当一个线程拥有对象锁时,其他线程也可以获取这个锁。
举一反三
- 调用object.wait()时,线程先要获取这个对象的锁,当前线程必须与锁对象保持同步,把当前线程添加到等待队列中,随后另一线程可以同步同一个对象锁来调用notify(),这样将唤醒原来等待中的线程,然后释放该锁
- 下列说法中错误的一项是______。 A: 当线程获得了某个对象的排他锁时,它可以独自访问该对象,而其他线程无法访问 B: 当线程获得了某个对象的排他锁时,它可以独自访问该对象,其他线程也可以通过某种策略访问 C: 临界区可以是一个方法 D: 程序中单独并发的线程可以对同一个对象进行访问
- 下列关于Synchronized说法正确的是 A: Synchronized加锁,锁的是一个对象 B: Synchronized加锁访问一个对象后,其它线程一定无法访问该对象 C: Synchronized加锁后,争用同一个锁的线程同时间只能有一个线程可以运行 D: 一个线程最多只能持有一个锁对象的互斥锁标记
- 面四个选项中,哪些是线程进入阻塞状态的原因? A: 线程试图获取某个对象的同步锁,而该锁被其它线程持有 B: 线程调用了另一个线程的join()方法 C: 当线程调用了一个阻塞式的IO方法 D: 线程调用了setDaemon(booleanb)方法
- 线程锁可以解决线程同步