在 Linux 平台上的 C 中是否可能出现类似以下内容: 我有一个线程说应用程序进程进行的读取系统调用(拦截系统调用)。为每个进程 A 创建一个线程,该线程执行所需的系统调用,然后休眠直到 A 使用其对应的应用程序进程进行的另一个系统调用将其唤醒。当一个进程退出时,它的工作线程不复存在。
这就像许多进程聚集在一个线程上,然后扇出到许多线程,每个进程一个线程。
谢谢
最佳答案
如果您正在寻找某种线程池实现并且不严格限于 C 我会推荐 threadpool (这几乎是 Boost)。它易于使用且非常精简。您现在唯一需要的逻辑是捕获系统事件,然后生成一个将执行调用的新任务线程。线程池将跟踪所有创建的线程并自动将工作分配给线程。
编辑
因为你仅限于 C,试试这个 implementation .它看起来相当完整且相当简单,但基本上可以完成工作。
关于c - 一个线程执行多个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218561/