Синхронизация ввода / вывода с экрана & pthread & C ++

0

Есть ли что-то встроенное в printf(), которое позволяет выполнять упорядоченные операции ввода-вывода экрана с отдельными потоками или с помощью cout/cerr? Я искал что-то, что позволит мне выполнять синхронизированный вывод экрана, используя cout/cerr и pthreads. Пока что пустая; возможно, придется что-то придумать в выходные.

  • 0
    Как насчет потока, который только выводит, читая из канала. А другие темы «публиковать» в трубу, а не выводить?
Теги:
pthreads

1 ответ

1

Как будет работать эта обертка? Я предполагаю, что вы хотите, чтобы несколько отпечатков из одного потока отображались последовательно... но как обертка знает, когда эти "группы" начинаются и останавливаются?

Поскольку вы должны каким-то образом определить эти "группы" отпечатков, почему бы просто не использовать 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);
}
  • 0
    Я думаю, что это будет работать, если не немного громоздко. Это дает мне представление, хотя ... Кстати, printf () работает отлично. Я хотел использовать cout & cerr. Конечно, они разбиваются, когда вы используете оператор << в выходных потоках.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню