一个线程执行多个进程

Posted

技术标签:

【中文标题】一个线程执行多个进程【英文标题】:Many processes executed by one thread 【发布时间】:2011-06-02 18:16:40 【问题描述】:

在 Linux 平台上的 C 中可能会出现以下情况: 我有一个线程说 A 读取应用程序进程进行的系统调用(拦截系统调用)。对于每个进程,A 创建一个线程,该线程执行所需的系统调用,然后休眠,直到 A 用对应的应用程序进程进行的另一个系统调用将其唤醒。当一个进程退出时,它的工作线程将不复存在。

因此,这就像多个进程在一个线程上进行对话,然后将其扇出到多个线程,每个进程一个线程。

谢谢

【问题讨论】:

你的意思是像线程池这样的东西吗? 【参考方案1】:

如果您正在寻找某种线程池实现并且不严格限于 C,我会推荐 threadpool(这几乎是 Boost)。它易于使用且非常精简。您现在需要的唯一逻辑是捕获系统事件,然后生成一个将执行调用的新任务线程。线程池将跟踪所有创建的线程并自动为线程分配工作。

编辑

由于您仅限于 C,请尝试此implementation。它看起来相当完整且相当简单,但它基本上可以完成这项工作。

【讨论】:

我有使用 C 的限制,但你描述的正是我想要的

以上是关于一个线程执行多个进程的主要内容,如果未能解决你的问题,请参考以下文章

进程与线程

线程和进程

线程和进程的比较

多线程基础

进程与线程

进程与线程