当前位置:IT认证>软件水平

问题:[选择题]

[单项选择题] 下列情况中,不会使线程返回所持有的对象锁的是( )。


A.当synchronized()语句块执行完毕
B.当调用了线程的suspend()方法
C.当在synchronized()语句块中出现异常(Exceptio
D.当持有锁的线程调用该对象的wait()方法

参考答案: B

  参考解析

本题考查Java线程中对象的加锁及其操作。对象加锁的使用非常灵活,一定要注意。对象的锁在如下几种情况下由持有线程返还:当synchronized()语句块执行完后,所以选项A错误;当在synchronized()语句块中出现异常(exception),所以选项B错误;当持有锁的线程调用该对象的wait()方法,此时该线程将释放对象的锁,所以选项D错误。而当调用了线程的suspend()方法只是使线程暂时停止执行,可以使用其他线程调用resume()方法恢复执行,所以选项B正确。

微信端