【问题标题】:Synchronizing screen I/O & pthread & C++同步屏幕 I/O & pthread & C++
【发布时间】:2014-01-24 20:18:01
【问题描述】:

是否有一些关于 printf() 的内置功能,可以让您使用单个线程而不是使用 cout/cerr 进行有序的屏幕 I/O?我正在寻找可以让我使用 cout/cerr 和 pthreads 进行同步屏幕输出的 something。到目前为止是空白的;可能需要在周末想出一些东西。

【问题讨论】:

  • 一个只输出的线程怎么样,从管道中读取。而其他线程“发布”到管道,而不是输出?

标签: c++ c pthreads


【解决方案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);
}

【讨论】:

  • 我想这会起作用,如果不是有点笨拙的话。不过,这给了我一个想法……顺便说一句, printf() 工作正常。我想使用 cout & cerr。当您在输出流上使用
猜你喜欢
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 2015-05-24
  • 1970-01-01
相关资源
最近更新 更多