У меня есть класс A со свойством LinkedBlockingQueue. В одном методе A я вызываю метод LinkedBlockingQueue.put(), так как я хочу вставить элемент в очередь. Но, если очередь заполнена, мой поток будет ждать, пока не будет доступно пространство, или пока мой поток не будет прерван.Блокировка очереди и InterruptedException
Проблема в том, что даже если мой поток прерывается, я хочу, чтобы элемент находился в очереди.
Есть ли способ удостовериться, что мой элемент был вставлен в очередь?
Благодаря
Какова цель заявления IF? –
Ну, если ваш поток был прерван, правильное поведение - попытаться остановить этот поток как можно раньше (это то, что прерывает поток). Вы не хотите, чтобы ваш поток вышел, прежде чем вы убедитесь, что элемент находится в очереди, но вы также должны уважать значение прерванного Exception, которое вы ранее получили. Это может быть не актуально в вашем случае, но это то, что используется в последнем случае if. – LordOfThePigs
При каких обстоятельствах поток, который был прерван, должен выйти? Почему, по вашему мнению, мы должны понимать из исключения, что что-то «идет не так» и что нам нужно подготовить закрытие потока? –