【发布时间】:2015-01-13 07:45:22
【问题描述】:
我有以下问题陈述:
实现一个函数 substLinesMany ... 。应同时处理所有指定的文件。如果任何文件导致错误,则 substLinesMany 将返回 false,否则返回 true。
你会在这里使用线程还是分叉? (必须选择一个)
【问题讨论】:
-
如果函数按照其名称的含义执行(更改文件中的行),并且文件位于同一个文件系统上,我不会使用任何一个。
-
就我个人而言,当涉及到信息交换时,我几乎总是会选择使用线程而不是分叉。不管怎样都行。
-
@JS1 线程可以返回有用的值吗?我试图从这个线程返回 500,它只打印 0:pastebin.com/raw.php?i=Hf10tgqR
-
@dgamma3 您将
NULL作为第二个参数传递给pthread_join。阅读文档。 -
void *status; int err, val; err = pthread_join(tid, &status); val = (uintptr_t) status;如果您使用pthread_join的第二个参数,您传递给pthread_exit的 500 将作为 void * 传递给您。但我也采用了另一种方式,即 main 通过pthread_create中的参数将指针传递给每个线程,每个线程在退出之前将其数据复制到给定的指针。
标签: c multithreading multiprocessing fork