gpt4 book ai didi

C - 等待多个线程终止

转载 作者:行者123 更新时间:2023-11-30 15:23:13 24 4
gpt4 key购买 nike

我试图在 main() 进程终止之前等待所有线程终止。这是我到目前为止所拥有的:

void* mapperFunction()
{
printf("Hello\n");
return NULL;
}
int main()
{
int i; // Used in "for" loops.
int N = 3;
pthread_t* mapperThreads = (pthread_t*) malloc(sizeof(pthread_t) * N);
for ( i = 0; i < N; i++)
{ // Creates all the mapper threads.
pthread_create( &mapperThreads[N], NULL, mapperFunction, NULL);
}
for ( i = 0; i < N; i++)
{ // Waits for all the mapper threads to terminate.
pthread_join( mapperThreads[N],NULL);
}
return 0;
}

当我运行此代码时,我得到三个不同的输出;

1-你好\n

2- 海勒\n你好\n

3- 你好\n你好\n你好\n

看起来 main() 进程并不总是等待所有线程终止。我做错了什么?

最佳答案

在每种情况下,您都需要 &mapperThreads[i] 而不是 &mapperThreads[N]

关于C - 等待多个线程终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com