在C中,为什么仅在初始化创建线程列表后才致电PTHREAD_JOIN



我明白两者的作用,但是我对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等待线程终止。

因此,您正在失去同时运行线程的好处。

最新更新