Usando le librerie multithreading, la printf ha già all'interno il sistema di sincronizzazione. Per le prove che facevo tempo fa usavo proprio la printf per stampare a video.
Gli stream (cout) devono essere sincronizzati a causa degli operatori di inserimento che non sono thread safe.