キューに何もないときに take() が呼び出されると、正確にはどうなりますか。APIはメソッドが待機すると言っていますが、それはアイテムがキューに入るまでCPUが空/空ではないことをチェックすることを意味しますか、それともスレッドが譲歩して割り込みによって目覚めることを意味しますか? 前者の場合、キューが空であるかどうかを確認し、thread.yield() を呼び出してプロセッサ時間を放棄するかどうかを確認したいと思うでしょう。私の質問は、yield を呼び出す必要があるのか、それとも内部メカニズムでそれを処理するのかということです。
第二に、中断された例外は何を意味するのですか? 私が正しく理解している場合、スレッド A がこのメソッドを実行していて入力を待っていて、別のスレッド B が threadA.interrupt() を呼び出した場合、スレッド A は中断された例外をキャッチし、おそらく実行を一時停止します。それはそれについて正しい考え方ですか?