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

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

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

谢谢

【问题讨论】:

  • 你的意思是像线程池这样的东西吗?

标签: c linux pthreads


【解决方案1】:

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

编辑

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

【讨论】:

  • 我有使用 C 的限制,但你描述的正是我想要的
猜你喜欢
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-27
  • 1970-01-01
相关资源
最近更新 更多