有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java什么会或不会导致线程阻塞(来自测试的问题)

我做了一个测试,有一个问题我丢了一些分数,因为我无法回答:

以下哪项不是导致线程阻塞的条件:

  • 调用对象的wait()方法
  • 正在等待I/O操作
  • 呼叫睡眠()
  • 调用收益率()
  • 调用join()

据我所知,所有这些都是屏蔽电话:

  • 当something调用notify()时,wait()返回,直到那时为止
  • 如果线程正在等待I/O操作,那么它显然被阻塞了
  • 显然,sleep()会一直阻塞,直到时间用完,或者有什么东西唤醒线程
  • yield()“取消线程的其余时间片”(缺少更好的术语),仅当线程再次处于活动状态时返回
  • join()阻塞,直到它等待的线程终止

我错过什么了吗


共 (1) 个答案

  1. # 1 楼答案

    屈服()。它不会阻塞线程,我的意思是它不会将线程置于阻塞状态,但它会将线程置于就绪状态——因此调度程序可以再次选择它来执行。试着了解线程的状态。除yield之外的所有操作都会将线程置于块状态