我明白两者的作用,但我对 pthread_join 的行为有疑问。
我注意到这种模式在 C 中很常见(注意伪代码):
for i in some range:
thread[i] = pthread_create (...)
for i in some range:
pthread_join(&thread[i]...)
为什么不能同时发生呢?例如:
for i in some range:
thread[i] = pthread_create (...)
pthread_join(&thread[i]...)
最佳答案
因为如果您这样做,所有线程都会按顺序运行,因为 pthread_join
会等待线程终止。
所以你失去了同时运行线程的好处,很简单。
关于c - 在 C 语言中,为什么只在初始化已创建线程列表后才调用 pthread_join?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668779/