【发布时间】:2010-03-20 22:14:05
【问题描述】:
我有一个测试,有一个问题我失去了一些分数,因为我无法回答它:
下列哪项不是导致线程阻塞的条件:
- 调用对象的 wait() 方法
- 等待 I/O 操作
- 调用 sleep()
- 调用yield()
- 调用 join()
据我所知,所有这些都是阻塞调用:
- 当某个东西调用 notify() 时,wait() 返回,然后阻塞直到那时
- 如果线程正在等待 I/O 操作,那么它显然被阻塞了
- sleep() 显然会阻塞,直到时间用完,或者有什么东西唤醒了线程
- yield()“取消线程的其余时间片”(缺少更好的术语),并且仅在线程再次处于活动状态时返回
- join() 阻塞,直到它等待的线程终止。
我错过了什么吗?
【问题讨论】:
-
如果在守护线程上调用 join() 会阻塞当前线程吗?自己没试过,也许有人知道
标签: java multithreading