java吧 关注:1,292,882贴子:12,826,736
  • 2回复贴,共1

【java线程】线程停止问题 一道题

只看楼主收藏回复

which two cannot directly cause a thread to stop executing?
A.Existing from a synchronized block. B.Calling the wait method on an object.
C.Calling notify method on an object. D.Calling read method on an InputStream object.
E.Calling the setPriority method on a Thread object.
就是这么一道题,有没有英语好的大神 给正确翻译一下
这是我翻译的(大家别受我的影响哈):
下列哪两个选项不能直接引起一个线程停止执行?
A.在被加锁的块中。 B.对一个对象调用wait()方法。
C.对一个对象调用notify()方法。D.调用一个InputStream对象的read()方法。
E.对一个线程对象调用setPriority()方法。
原来给的答案是:AC
可是我感觉 D E 也不能啊。
希望哪位大神帮忙看看,如果能解释下就更是万分感谢了。


1楼2013-04-20 19:34回复
    我觉得这道题的意思是哪些情况是有机会让线程暂停,不一定是100%会让线程暂停
    所以D E都是有机会的。
    因为InputStream的read是block read,也就是说,如果没有数据的话,会block当前线程
    而调整priority的话,如果你把优先级调的很低,有可能会把这个线程暂时挂起,去调度其他优先级高的线程
    不知道我这么理解对不对...


    2楼2013-04-20 20:15
    收起回复