LinkedBlockingQueue использует одиночную блокировку (ReentrantLock) для всей своей работы.
В вашем случае, когда вы говорите 100 элементов за раз, это означает, что метод put вызывается 100 раз. Метод put пытается получить блокировку перед вставкой. Так что вполне возможно, что Consumer Thread будет предоставлен шанс, и он может истощить очередь.
Кроме того, LBQ использует несправедливую блокировку, поэтому вероятность голодания вполне возможна.