当队列中没有任何内容并调用 take() 时,究竟会发生什么。API 说该方法将等待,但这是否意味着 CPU 会旋转检查是否为空/非空,直到有项目在队列中,或者是否意味着线程产生并会被中断唤醒?如果是前者,我可能想看看队列是否为空,以及是否调用 thread.yield() 以放弃处理器时间。我的问题是我真的需要调用 yield 还是一些内部机制为我处理?
其次,中断异常是什么意思?如果我理解正确,这意味着如果线程 A 正在执行此方法并且正在等待输入并且另一个线程 B 调用 threadA.interrupt() 那么线程 A 将捕获中断的异常并可能暂停执行,如果它很好的话。这是正确的思考方式吗?