gpt4 book ai didi

我可以让 pthread_t 实例超出范围吗?

转载 作者:太空狗 更新时间:2023-10-29 15:33:38 26 4
gpt4 key购买 nike

我正在使用 C 和 pthreads 进行编程。我有一个长时间运行的函数,我想在一个单独的线程中运行:

void long_running_function(void * arg) {  
...
}


void start_long_running_function(void * arg) {
pthread_t thread;
pthread_create( &thread , NULL , long_running_function , arg);
/* What about the thread variable? */
}

当离开 start_long_running_function() 函数时,局部变量“线程”将超出范围。这可以吗 - 或者我可以冒问题的风险,例如long_running_function() 何时完成?

我已经尝试了我的代码中说明的方法,它似乎有效 - 但也许这只是运气?

问候乔金

最佳答案

是的——让变量超出范围是安全的。但请记住,在某些时候您必须做以下两件事之一:

1) pthread_detach() 这样内核将释放与之关联的某种东西。

2) pthread_join() 它具有分离它的副作用。

如果不这样做,我认为这将是资源泄漏。

关于我可以让 pthread_t 实例超出范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6855857/

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