c - 什么时候使用 fork 或线程?

标签 c multithreading multiprocessing fork

<分区>

我有以下问题陈述:

Implement a function substLinesMany ... . All the specified files should be processed concurrently. If any of the files result in an error, then substLinesMany will return false otherwise return true.

你会在这里使用线程还是 fork ? (必须选一个)

最佳答案

我会使用线程而不是 fork 。创建一个新线程比创建一个新进程消耗更少的资源。线程共享相同的地址空间,而 fork 一个进程需要创建一个具有新地址空间的新进程。鉴于函数的性质(替换文件中的行),没有必要为每个文件提供单独的地址空间。

唯一的缺点是每个进程可能对同时打开的文件数量有限制,这在使用线程时可能会受到影响。不过,这是一个可控的问题。

关于c - 什么时候使用 fork 或线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26955042/

相关文章:

c - 无法使用 tcpdump 捕获 IP 广播数据包

在 C 中创建用户长度定义的数组

C#:如何防止调用失败

python - Python 的 multiprocessing.connection 是否序列化?

CLONE_VM 标志使 itimer 不准确?

c - 从 C 文件夹中读取并重命名文件

c++ - 需要字节序解决方法

java - 两个线程交替打印偶数后程序无限期挂起

c++ - 为什么不重新锁定互斥锁的 condition_variable 没有等待函数

python - LSF:提交一个使用多处理器模块的 Python 脚本 * 或 * 一次提交多个 "pre-split"脚本?