我明白两者的作用,但是我对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
等待线程终止。
因此,您正在失去同时运行线程的好处。