Проблема такая. Читаю из файла в буферы (всего их пять) - это первая нить. Выполняю над ними 2 операции - это еще две нити. Т.е. буфер один заполнился, разрешается первая операция, после нее вторая и т.д. Блокировки буферов с помощью семафоров.
Но получается, что время тратится значительно больше, чем, если бы это выполнялось в одном потоке.
Что может быть не так?