• 2022-07-02
    当一个线程拥有对象锁时,其他线程也可以获取这个锁。
  • 内容

    • 0

      当wait()方法被调用时,当前线程会释放所持有的锁资源,但是一个线程获得了锁,即使调用sleep()方法进入休眠,也不会释放锁。

    • 1

      关于sleep()和wait()方法,以下描述错误的是( )。 A: sleep是线程类(Thread)的方法,wait是Object类的方法 B: sleep不释放对象锁,wait释放对象锁 C: sleep()中指定的时间是线程不会运行的最短时间,它不能保证该线程睡眠到期后就开始执行 D: wait后进入该对象的锁池,其他线程调用notify()方法并获取对象锁会进入运行状态

    • 2

      一旦线程调用条件上的await()方法,该锁将自动释放。一旦条件正确,线程将重新获取锁并继续执行。

    • 3

      下列情况中,不会使线程返回所持有的对象锁的是( )。 A: 当synchronized() 语句块执行完毕 B: 当调用了线程的suspend() 方法 C: 当synchronized() 语句块中出现异常 D: 当持有锁的线程调用wait() 方法

    • 4

      下面关于使用同步代码块描述正确的是( ) A: 同步代码块中的锁对象可以是任意类型的对象 B: 当多个线程共享的锁对象必须是唯一的 C: 锁对象的创建代码不能放到run()方法中 D: 当线程执行同步代码块时,首先会检查锁对象的标志位