c++ - 以局部变量为参数的 pthread_create

标签 c++ pthreads posix local-variables

下面这样使用pthread_create会不会出错?

void myFunction(){
  thread_t myThread;
  pthread_create(&myThread,0,myRoutine,0);
}

我不确定使用局部变量 myThread 是否会导致错误,因为它在 myFunction() 退出时不再存在。

函数退出时myThread的内存还能在内核中使用吗?

我不需要存储在 myThread 中的线程 ID,所以我不想分配内存并再次释放它。

最佳答案

您不应该让线程“刚刚结束”,因为这肯定会导致问题。如果您希望线程在它成功时结束,您至少应该使用 pthread_detach,此时线程完全是“独立的”,应该可以让它保持原状。

关于c++ - 以局部变量为参数的 pthread_create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18615445/

相关文章:

c++ - 如何选择功能模板特化?

c++ - 从 C 到 Neon 的双线性插值

java - 使用 JNI 将 float* 转换为 jfloatArray

c++ - 条件等待开销

c - 有没有办法规范化不存在文件的文件路径?

c - 与进程树中的兄弟共享PID

c++ - 使用单写入器增长 Boost.Interprocess 内存映射文件

c++ - 单线程和多线程代码同时耗时

c - 将 C 程序与标准线程(C11 中的 <threads.h>)链接的正确方法是什么?

argc 在 POSIX 系统上可以为零吗?