Что именно происходит, когда в очереди ничего нет и вызывается метод take (). API говорит, что метод будет ждать, но означает ли это, что процессор вращается, проверяя наличие пустого / не пустого, пока элемент не окажется в очереди, или это означает, что поток завершает работу и будет вызван прерыванием? Если это относится к первому, я, вероятно, хотел бы увидеть, пуста ли очередь и вызывается ли она thread.yield (), чтобы оставить процессорное время. Мой вопрос действительно должен ли я вызывать yield или какой-то внутренний механизм обрабатывает это для меня?
Во-вторых, для чего предназначено прерванное исключение? Если я правильно понимаю, это означает, что если поток A выполняет этот метод и ожидает ввода, а другой поток B вызывает threadA.interrupt (), то поток A перехватит прерванное исключение и предположительно приостановит выполнение, если это хорошо. Это правильный образ мышления?