我写了这个简短的例子,以便理解C中的线程编程。我应该编写“线程0”。 但是没有输出。 这是代码。
#include #include #include int i=0; pthread_mutex_t mutex; void * fonction(){ pthread_mutex_lock(&mutex); printf("thread %d n",i++); pthread_mutex_unlock(&mutex); pthread_exit(NULL); } int main(){ pthread_t a; pthread_mutex_init(&mutex,NULL); pthread_create(&a,NULL,fonction,NULL); return EXIT_SUCCESS; }
有人能帮我吗 ? Ps:我用它来编译它
gcc -pthread test.c -o test
在pthread_join(a, NULL)
之后和return EXIT_SUCCESS;
之前插入pthread_join(a, NULL)
return EXIT_SUCCESS;
确保在main()
返回之前完成子线程。
pthread_join()
是一种方式,但它不是唯一的解决方案。
如果你的主线程不需要(需要)活着更长时间(比它创建的线程),它可以简单地退出pthread_exit(0)
。
当主线程使用pthread_exit()
退出时,进程保持活动状态,直到进程中的最后一个线程退出。
当主线程进行初始化/设置并启动多个线程然后不再需要它时,这很有用。 否则,它必须等待所有线程完成(请记住,当main()退出时,整个进程退出 – 调用pthread_exit()
将只退出主线程 ,而不是整个进程)。
以上就是c/c++开发分享Pthread_t没有开始相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/519231.html