gpt4 book ai didi

c++ - 为什么 pthread_exit 的行为类似于 pthread_join?

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:13 25 4
gpt4 key购买 nike

代码:

void *PrintHello(void *threadid)
{
cout<<"Hello"<<endl;
sleep(3);
cout<<"Still PrintHello is alive"<<endl;
}
int main (int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
cout<<"Calling thread:"<<t<<endl;
pthread_create(&threads[0], NULL, PrintHello, NULL);
//pthread_join(threads[0],NULL);
cout<<"Main exits"<<endl;
pthread_exit(NULL);
}

为什么 pthread_exit(NULL) 在这里表现得像 pthread_join()?即为什么退出 main 不破坏 printHello 线程并允许它继续?

最佳答案

pthread_exit() 仅终止调用线程。因此,当您从 main() 调用它时,它会终止主线程,同时允许进程继续。这符合预期。

如果您改为调用 exit()(或通过返回隐式退出),它将终止整个过程,您将看到 printHello 也终止了。

关于c++ - 为什么 pthread_exit 的行为类似于 pthread_join?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315084/

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