扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: Java > Java并发高频面试题 > 22.如何唤醒一个阻塞的线程?

如果线程是由于wait()sleep()join()yield()等方法进入阻塞状态的,是可以进行唤醒的。如果线程是IO阻塞是无法进行唤醒的,因为IO是操作系统层面的,Java代码无法直接接触操作系统。

  • wait():可用notify()notifyAll()方法唤醒。
  • sleep():调用该方法使得线程在指定时间内进入阻塞状态,等到指定时间过去,线程再次获取到CPU时间片进而被唤醒。
  • join():当前线程A调用另一个线程B的join()方法,当前线程转A入阻塞状态,直到线程B运行结束,线程A才由阻塞状态转为可执行状态。
  • yield():使得当前线程放弃CPU时间片,但随时可能再次得到CPU时间片进而激活。

点击面试手册,获取本站面试手册PDF完整版