pthread_join()
来源:互联网 发布:中科院心理研究所知乎 编辑:程序博客网 时间:2024/05/22 09:27
void pthread_exit(void *retval)
int pthread_join(pthread_t th, void **thread_return)
pthread_join()的调用者将挂起并等待th线程终止,retval是pthread_exit()调用者线程(线程ID为th)的返回值,
如果thread_return不为NULL,则*thread_return=retval。
需要注意的是一个线程仅允许唯一的一个线程使用 pthread_join()等待它的终止,并且被等待的线程应该处于可join状态,即非DETACHED状态。
------------------------
for (i = 0; i < 10; i++)
{
if (pthread_create((pthread_t *)&pthr[i].id, NULL,
(void *)thr_function, (void *)pthr[i]))
{
fprintf(stderr, "Create pthread error: %s\n", strerror(errno));
goto err_flg;
}
}
for (i = 0; i < 10; i++)
{
if (pthr[i].id != 0)
pthread_join(pthr[i].id, NULL);
}
相关1:pthread_join是为了防止主线程没有给其他线程执行的时间就返回了而设计的,
pthread_join(thread_t th,void ** thread_return )是使主线程等待th线程运行结束再运行
相关2:有时候主线程创建子线程后,如果不使用pthread_join将自己阻塞,自己会先退出而程序结束,
这样子线程的运行可能无法执行完毕就**退出了,这也算是要使用pthread_join的一个场景吧。
相关3:pthread_join应该是用来回收线程资源的,当线程结束时调用,在一支程序中一直创建线程,而在
线程结束时又没有用pthread_join则会造成资源不足,无法继续创建线程的情况.
相关4:pthread_join回收线程资源,在pthread_create后父进程就可调用此函数,不过会阻塞父进程直到子进程结束。
pthread_join()不会阻塞其他子进程。
可以设置线程属性自动回收资源,就不用调用pthread_join了。
int pthread_join(pthread_t th, void **thread_return)
pthread_join()的调用者将挂起并等待th线程终止,retval是pthread_exit()调用者线程(线程ID为th)的返回值,
如果thread_return不为NULL,则*thread_return=retval。
需要注意的是一个线程仅允许唯一的一个线程使用 pthread_join()等待它的终止,并且被等待的线程应该处于可join状态,即非DETACHED状态。
------------------------
for (i = 0; i < 10; i++)
{
if (pthread_create((pthread_t *)&pthr[i].id, NULL,
(void *)thr_function, (void *)pthr[i]))
{
fprintf(stderr, "Create pthread error: %s\n", strerror(errno));
goto err_flg;
}
}
for (i = 0; i < 10; i++)
{
if (pthr[i].id != 0)
pthread_join(pthr[i].id, NULL);
}
相关1:pthread_join是为了防止主线程没有给其他线程执行的时间就返回了而设计的,
pthread_join(thread_t th,void ** thread_return )是使主线程等待th线程运行结束再运行
相关2:有时候主线程创建子线程后,如果不使用pthread_join将自己阻塞,自己会先退出而程序结束,
这样子线程的运行可能无法执行完毕就**退出了,这也算是要使用pthread_join的一个场景吧。
相关3:pthread_join应该是用来回收线程资源的,当线程结束时调用,在一支程序中一直创建线程,而在
线程结束时又没有用pthread_join则会造成资源不足,无法继续创建线程的情况.
相关4:pthread_join回收线程资源,在pthread_create后父进程就可调用此函数,不过会阻塞父进程直到子进程结束。
pthread_join()不会阻塞其他子进程。
可以设置线程属性自动回收资源,就不用调用pthread_join了。
0 0
- pthread_join
- pthread_join
- pthread_join
- pthread_join
- pthread_join
- pthread_join
- pthread_join()
- pthread_join
- pthread_join
- pthread_join
- pthread_join函数
- pthread_join 详解
- pthread_join/pthread_exit
- pthread_join手册
- pthread_join/pthread_exit
- pthread_join()函数
- pthread_join作用
- pthread_join理解
- 最长上升子序列
- c++ 转换与类类型简单实例
- 最简单的基于FFMPEG+SDL的音频播放器 ver2 (采用SDL2.0)
- 在select 中声明变量
- GPU并行编程方法
- pthread_join()
- android开发之异常java.lang.IllegalStateException: Adapter is detached.的解决办法
- Linux下记录所有用户操作的脚本
- Linux 动态库的显示调用
- hibernate 之 9.one2one双向
- 单点登录SSO的实现原理
- 常见android编译错误解决
- 关于Android通知栏的兼容问题
- Android控件之HorizontalScrollView 去掉滚动条