pthread_join用来等待一个线程的结束。函数原型为:
extern int pthread_join (pthread_t__th, void **__thread_return);

  

第一个参数为被等待的线程标识符,也就是Thread ID。其类型为pthread_t。通过调用pthread_self()函数可以获得自身的线程号。

第二个参数唯一的参数是函数的返回代码,为一个用户定义的指针,它可以用来存储被等待线程的返回值,只要pthread_exit中的参数retval不是NULL,这个值将被传递给 thread_return。

例子:

//父线程

bool updateAsync()
{
void  *nRes;

pthread_mutex_init(&s_Mutex, NULL);
pthread_create(&s_updateThread, NULL, download, this);

//等待子线程完成
pthread_join(s_updateThread, &nRes);

//nRes为子线程的返回值
if ((int)nRes < 0)
return false;
else
return true;
}

//子线程

static void * download(void * pData)
{
pthread_mutex_lock(&s_Mutex);

int nRes = pManager->update(pData);

pthread_mutex_unlock(&s_Mutex);

//nRes 为线程返回值
pthread_exit((void *)nRes);
return NULL;
}

pthread_join来接收线程的返回参数相关推荐

  1. 编写一个静态方法lg(),接收一个整型参数N,返回不大于log2N(以2为底)的最大整数。不要使用Math库。

    题目: 编写一个静态方法lg(),接收一个整型参数N,返回不大于log2N的最大整数.不要使用Math库. 代码: public class Node {public static void main ...

  2. linux线程多参数传递参数,Linux中多线程编程并传递多个参数

    解析Linux中多线程编程并传递多个参数 Linux中多线程编程并传递多个参数实例是本文讲解的内容,不多说,先来看内容. Linux下的多线程编程,并将多个参数传递给线程要执行的函数. 以下是实验程序 ...

  3. MySQL线程共享内存参数

    MySQL线程共享内存参数 全局共享内存主要是 MySQL Instance(mysqld进程)以及底层存储引擎用来暂存各种全局运算及可共享的暂存信息,如存储查询缓存的 Query Cache,缓存连 ...

  4. camera(17)---设置摄像头方向、打开线程与预览线程、设置参数、Camera外设按键、自动对焦与触摸对焦、拍照、人脸检测、位置管理、旋转管理、变焦、录像

    [Android]设置摄像头方向.打开线程与预览线程.设置参数.Camera外设按键.自动对焦与触摸对焦.拍照.人脸检测.位置管理.旋转管理.变焦.录像 阅读数:1673 设置摄像头方向.打开线程与预 ...

  5. C/C++语言传参、返回参数知识点讲解

    在我们编写程序时,大多数情况下都是函数传参,接收返回参数,但这中间有一定的操作系统内存传递原理,当你看完这篇文章你会发现,噢!原来这样使用会出错之类的感想! 最简单的,函数现场保护,通常操作系统会使用 ...

  6. Java 线程池及参数动态调节详解

    前前言:本文搬自:why技术 前言:曾经自诩对线程池了如指掌,不料看了美团的一篇技术文章后才知道原来线程池的参数还可以动态调节. 经典面试题 在这篇文章中我主要回答上面抛出的这个问题:你这几个参数的值 ...

  7. java 动态线程池_线程池的参数动态调整

    经典面试题 这次的文章还是绕回了我写的第三篇原创文章<有的线程它死了,于是它变成一道面试题>中留下的几个问题: 哎,兜兜转转,走走停停.天道好轮回,苍天饶过谁? 在这篇文章中我主要回答上面 ...

  8. Linux多线程编程-线程函数返回值(返回简单数据类型)

    引言 通过几个实验练习,学习线程之间连接的具体实现.下面列举了两个例子,一个是子线程返回简单数据类型:另一个是子线程返回复杂数据类型. 实现代码 子线程返回简单的数据类型 #include<st ...

  9. pthread_create函数的详细讲解(包括向线程函数传递参数详解)

    pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int pthread_create(pthread_t*restrict ...

最新文章

  1. 在Xcode8中 如何添加.pch文件
  2. Java重写equals方法时为什么要重写hashCode方法
  3. 【Java Netty】Java NIO position limit capacity 以及 BufferUnderflowException
  4. python自动化测试——元素操作
  5. java基本变量的堆栈_JAVA经验谈:尽可能使用堆栈变量
  6. python生成器_Python生成器
  7. springmvc07 Json处理
  8. 介绍一个小技巧,如何实现ssh免密登录
  9. html5 的 webScoket 和 C# 建立Socket连接
  10. 回顾2020年(1)
  11. java MD5完整加解密工具类
  12. 最近选购MP3而有感便携追求音质的一些心得
  13. 预测控制(一):MPC轨迹跟踪
  14. eslint 如何关闭检查变量名规范或者大小写检查
  15. [转载] 百家讲坛——郦波评说曾国藩家训 上部(一)谁来拯救笨小孩
  16. 二. Binding 详解
  17. 【论文翻译】SETR:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformer
  18. 你是否有疑问,软件是如何驱动硬件,代码又是如何对计算机进行控制的呢?
  19. 重命名Active Directory域名
  20. Oracle 19c 新特性 —— 自动索引 Automatic indexing

热门文章

  1. 泛型 java 总结_JAVA泛型总结
  2. java编译sql存过_SQL SERVER 临时表导致存储过程重编译(recompile)的一些探讨
  3. STM8单片机ADC连续采样模式
  4. STM32F103单片机JTAG端口重映射
  5. PaddleOCR服务器端部署C++ cpu或者gpu进行预测
  6. 主成分分析(Principal components analysis)(特征降维)(PCA)-最大方差解释
  7. c/c++ 中文件路径的表示
  8. 云计算学习教程,Python自动化运维开发实战
  9. 高通首次演示基于3GPP的5G新空口连接 有望成为全球标准
  10. 鸭子类型duck typing(动态)