【发布时间】:2016-06-29 08:33:59
【问题描述】:
简介:有很多子进程的大型 Linux 应用程序,我需要这样的东西:
/* parent process, far from fork*/
suppress_child_output_to_parent_tty();
printf("important message");
/* huge piece of code */
printf("important message");
restore_child_output_to_parent_tty();
我知道存在一种标准的方法来做到这一点
- 制作管道,
- fork,将 STDOUT 重定向到该管道,
- 在不同线程的某个循环中选择和读取管道/写入父标准输出,
- 需要时手动暂停此循环
但是我不应该为此使用长寿命线程,我的应用程序作为具有许多多线程子节点的多个实例工作,并且存在一些操作系统调度程序问题,真的,我应该节省 cpu 线程。因此,我为块子 STDOUT 寻找一些优雅的操作系统工具。
我能做什么?
【问题讨论】:
-
您想在“大量代码”运行时保持子进程运行,还是暂时暂停它是一种可接受的解决方案?
-
是的,暂停子进程是可以接受的。
标签: c linux multithreading fork tty