Возможно, я ошибаюсь, но вот моя проблема и предлагаемое решение:
У вас есть файл размером 50+ гигабайт с сотнями миллионов независимых записей, которые необходимо обработать очень быстро. Мое текущее решение - 74 миллиона записей в час. Я использую блокирующую очередь для потока ввода-вывода, и каждый рабочий поток пытается захватить фрагменты данных из этой очереди.
Вышеупомянутое выполняется довольно медленно из-за конкуренции за мьютекс между потоками ввода-вывода и рабочими потоками.
Есть ли способ обойтись без блокировок в этом стиле производителя / потребителя?