java什么会或不会导致线程阻塞(来自测试的问题)
我做了一个测试,有一个问题我丢了一些分数,因为我无法回答:
以下哪项不是导致线程阻塞的条件:
- 调用对象的wait()方法
- 正在等待I/O操作
- 呼叫睡眠()
- 调用收益率()
- 调用join()
据我所知,所有这些都是屏蔽电话:
- 当something调用notify()时,wait()返回,直到那时为止
- 如果线程正在等待I/O操作,那么它显然被阻塞了
- 显然,sleep()会一直阻塞,直到时间用完,或者有什么东西唤醒线程
- yield()“取消线程的其余时间片”(缺少更好的术语),仅当线程再次处于活动状态时返回
- join()阻塞,直到它等待的线程终止李>
我错过什么了吗
# 1 楼答案
屈服()。它不会阻塞线程,我的意思是它不会将线程置于阻塞状态,但它会将线程置于就绪状态——因此调度程序可以再次选择它来执行。试着了解线程的状态。除yield之外的所有操作都会将线程置于块状态