Есть ли что-то встроенное в printf(), которое позволяет выполнять упорядоченные операции ввода-вывода экрана с отдельными потоками или с помощью cout/cerr? Я искал что-то, что позволит мне выполнять синхронизированный вывод экрана, используя cout/cerr и pthreads. Пока что пустая; возможно, придется что-то придумать в выходные.
Как будет работать эта обертка? Я предполагаю, что вы хотите, чтобы несколько отпечатков из одного потока отображались последовательно... но как обертка знает, когда эти "группы" начинаются и останавливаются?
Поскольку вы должны каким-то образом определить эти "группы" отпечатков, почему бы просто не использовать pthread_mutex_t
?
void thread1(void) {
pthread_mutex_lock(&print_mutex);
printf("This ");
printf("is ");
printf("thread ");
printf("one.\n");
pthread_mutex_unlock(&print_mutex);
}
void thread2(void) {
pthread_mutex_lock(&print_mutex);
printf("This ");
printf("is ");
printf("thread ");
printf("two.\n");
pthread_mutex_unlock(&print_mutex);
}