一旦线程调用条件上的await()方法,该锁将自动释放。一旦条件正确,线程将重新获取锁并继续执行。
举一反三
- 调用object.wait()时,线程先要获取这个对象的锁,当前线程必须与锁对象保持同步,把当前线程添加到等待队列中,随后另一线程可以同步同一个对象锁来调用notify(),这样将唤醒原来等待中的线程,然后释放该锁
- 关于sleep()和wait()方法,以下描述错误的是( )。 A: sleep是线程类(Thread)的方法,wait是Object类的方法 B: sleep不释放对象锁,wait释放对象锁 C: sleep()中指定的时间是线程不会运行的最短时间,它不能保证该线程睡眠到期后就开始执行 D: wait后进入该对象的锁池,其他线程调用notify()方法并获取对象锁会进入运行状态
- 当wait()方法被调用时,当前线程会释放所持有的锁资源,但是一个线程获得了锁,即使调用sleep()方法进入休眠,也不会释放锁。
- 下列说法中,错误的一项是( )? A: 线程一旦创建,则立即自动执行。 B: 线程创建后需要调用start()方法,将线程置于就绪状态。 C: 线程处于就绪状态,意味着它可以被调度。 D: 调用线程的start()方法后,线程也不一定立即执行。
- 下列说法中,错误的一项是( )。 A: 线程一旦创建,则立即自动执行 B: 线程创建后需要调用start()方法,将线程置于可运行状态 C: 调用线程的start()方法后,线程也不一定立即执行 D: 线程处于可运行状态,意味着它可以被调度