Не знаю, как DMA «решит» эту проблему - вы используете одно процессорное ядро, которое может одновременно выполнять только один набор инструкций. DMA не изменит этого.
Похоже, проблема в том, что вы используете процессор практически на полную мощность, и поэтому вы не видите большого количества времени, которое вы делите между потоками. Есть, как правило, два подхода к этому.
1) отрегулируйте приоритет вашего более важного потока, чтобы у планировщика было больше времени на его работу.
или
2) настроить размер потока для ваших потоков, чтобы планировщик чаще переключался между потоками.