`
xitong
  • 浏览: 6176908 次
文章分类
社区版块
存档分类
最新评论

Linux线程-pthread_join

 
阅读更多


pthread_join用来等待另一个线程的结束,函数原型如下:

extern int pthread_join __P ((pthread_t __th, void **__thread_return));

这个调用之后,如果没有出错,会引起调用线程的阻塞,直到所等待的线程结束。这个调用的第一个参数很容易理解,表示需要等待哪个线程,第二个参数是我们自己定义的一个指针变量,用来存储所等待线程结束之后的返回值。

我们主要看一下这个变量可能是从哪来的,以pthread_exit为例,这个调用用来主动结束线程。函数原型如下:

extern void pthread_exit __P ((void *__retval)) __attribute__ ((__noreturn__));

可以看到这个函数有一个返回码retval,这个参数如果不空的话,会被直接传递给thread_return .



分享到:
评论

相关推荐

    undefined reference to ‘pthread_create’的解决方法

    问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。 问题解决: 在编译...

    linux系统编程之线程.zip

    start_routine返回时,这个线程就退出了,其它线程可以调用pthread_join得到start_routine的返回值,类似于父进程调用wait(2)得到子进程的退出状态,稍后详细介绍pthread_join。 pthread_create成功返回后,新创建的...

    Linux系统编程之线程同步

    pthread_join(tid, NULL); return 0; } 【mutex.c】 【练习】:修改该程序,使用mutex互斥锁进行同步。 1. 定义全局互斥量,初始化init(&m, NULL)互斥量,添加对应的destry 2. 两个...

    Linux下多线程

    Linux下对线程的创建(pthread_create)、退出(pthread_exit)、等待( pthread_join)等操作……

    多线程API.zip

    常见的多线程API和用法 pthread_self函数 pthread_create函数 pthread_exit函数 pthread_join函数 pthread_detach函数 pthread_equal函数

    linux+c+多线程

    pthread_t t_id1,t_id2; pthread_create(&t_id1,NULL,fun1,NULL); pthread_create(&t_id2,NULL,fun2,NULL); pthread_join(t_id1,NULL); pthread_join(t_id2,NULL);

    Linux 进程控制与进程互斥(附源代码)(附实验报告)

    3、利用最常用的三个函数pthread_create,pthread_join和pthread_exit编写了一个最简单的多线程程序。理解多线程的运行和输出情况; 4、利用信号量机制控制多线程的运行顺序,并实现多线程中数据的共享; 5、分析...

    linux多线程设计及示例

    当一个可汇合的线程终止时,它的线程ID和退出状态将留到另一个线程对它调用pthread_join。脱离线程却象守护进程:当它们终止的时,所有相关资源都被释放,我们不能等待它们终止。如果一个线程需要知道另一个线程什么...

    5操作系统实验报告.doc

    程,熟练掌握线程的创建pthread_create(),线程终止pthread_exit(),等待线程合 并pthread_join()等线程控制的操作,利用信号量或者互斥锁实现线程间的同步。 二、实验内容 问题:求 100000 个浮点数(精确小数点右 ...

    linux线程编程-详解

    linux线程编程函数pthread_create与pthread_join详解

    linux pthread 多线程控制示例代码

    一个示例程序,演示在linux环境下如何使用pthread实现多线程的使用和控制。

    深入分析父子线程、进程终止顺序不同产生的结果

    一、线程Linux线程创建函数为pthread_create(),默认规则是谁创建子线程,谁就要负责子线程的资源回收,当父线程退出后,子线程也随着退出。所以,一般情况下,父线程退出时都要确保子线程已经退出,所以会使用...

    linux网络编程-宋敬彬-part3

    4.4.3 线程的结束函数pthread_join()和pthread_exit() 129 4.4.4 线程的属性 130 4.4.5 线程间的互斥 132 4.4.6 线程中使用信号量 133 4.5 小结 136 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 ...

    linux网络编程-宋敬彬-part2

    4.4.3 线程的结束函数pthread_join()和pthread_exit() 129 4.4.4 线程的属性 130 4.4.5 线程间的互斥 132 4.4.6 线程中使用信号量 133 4.5 小结 136 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 ...

    UnixProgramming

    UnixProgramming 这是我学习Unix(主要是linux)系统编程与网络编程的笔记,附上部分源码 系统编程 进程 创建fork 执行exec 销毁wait/waitpid(SIGCHLD) 进程间通信: ...回收pthread_join 取消pthrea

    Linux线程退出方式总结(推荐)

    这个标志位需要主线程(或其他线程)设置,设置后,主线程调用pthread_join接口进入休眠(接口参数指定了等待的线程控制指针),子线程退出后,主线程会接收到系统的信号,从休眠中恢复,这个时候就可以去做相关的...

    《Linux系统编程、网络编程》第8章 C线程

    课程内容:为什么需要线程、进程的缺点、线程是否能完全替...、线程控制函数(pthread_create、pthread_join、pthread_detach、pthread_exit等)、线程资源保护(互斥锁、线程信号量、条件变量)、进程与线程的对比。

    操作系统实验报告.docx

    《操作系统实验》报告 实验四:利用信号量实现进程控制 指导教师: ________ 班级: _________ 学号: _______ 姓名: _________ 操作系统实验报告全文共4页,当前为第1页。... pthread_join(t1,NULL); pt

    操作系统实验报告-.docx

    6 六、实验体会 7 一、实验目的和要求 通过本实验掌握在Linux操作系统中遵循Posix线程标准接口进行多线程程序编程,熟练掌握线程的创建pthread_create(),线程的终止pthread_exit(),等待线程合并pthread_join()等...

    linux网络编程-宋敬彬-part1

    4.4.3 线程的结束函数pthread_join()和pthread_exit() 129 4.4.4 线程的属性 130 4.4.5 线程间的互斥 132 4.4.6 线程中使用信号量 133 4.5 小结 136 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 ...

Global site tag (gtag.js) - Google Analytics