Я думаю, что оптимизация может зависеть от ОС. Из задачи, которую вы описали, я думаю о двух потоках, потребляющих входящие данные и добавляющих их в общий поток, имеющих доступ на основе мьютексов. И Linux, и Win32 имеют мьютекс-подобные процедуры, но они могут иметь низкую производительность, если у вас действительно высокая скорость передачи данных. В этом случае я бы оперировал блоками данных, что позволит использовать мьютексы не так часто. Конечно, есть основной поток, который потребляет данные, и он также обращается к ним с помощью мьютекса.