线程基本函数简介
来源:互联网 发布:vod网络媒体播放器 编辑:程序博客网 时间:2024/06/08 09:39
一个进程内的所有线程共享同一个全局内存空间,注意同步问题。
一、五个基本线程函数
1.pthread_create函数
#incldue <pthread.h>int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*func)(void *), void *arg)
(1)类似于fork函数,一个进程内的各个线程由线程ID标识的,数据类型为pthread_t,进程创建成功时,由指针tid返回;(2)pthread_attr_t指定线程的属性,通常为缺省值NULL;(3)创建线程时要指定一个线程启动函数,该函数的地址由参数func指定,该函数唯一调用的参数由指针arg指定; 如果需要给该函数传递多个参数,则将它们打包成一个结构,然后将其地址作为这个唯一的参数; 通用指针参数(void *)可以使得我们让指针指向任何我们想要指向的东西;(4)创建成功时返回0,创建失败时返回一个正的Exxx值。
2.pthread_join函数
#include <pthread.h>int pthread_join(pthread_t tid, void * *status)
(1)类似于waitpid函数,用于等待一个线程的终止(非任意线程),tid为所等待线程的ID;(2)如果指针status非空,那么所等待线程的返回值(指向一个对象的指针)将存放在status指向的位置;(3)执行成功时返回0,执行失败时返回一个正的Exxx值。
3.pthread_self函数
#include <pthread.h>pthread_t pthread_self(void)
(1)类似于getpid函数,用于获取线程在某个进程内标识自身的ID;(2)执行成功时返回线程ID;
4.pthread_detach函数
#include <pthread.h>int pthread_detach(pthread_t tid)
(1)该函数将指定的线程变为脱离的;该函数通常由想让自己脱离的线程使用 pthread_detach(pthread_self());(2)线程分为可汇合的(joinable)和脱离的(detached)。当可汇合的线程终止时,其线程ID和退出状态将保留,直到另 外一个线程调用pthread_join;脱离的线程像一个守护进程,当它终止时,所有资源都释放,所以不能用pthread_join等待它终止;如果一个线程需要知道另一个线程的终止时间,那么需要保留后面那个线程的可汇合性;(3)执行成功时返回0,执行失败时返回一个正的Exxx值。
5.pthread_exit函数
#include <pthread.h>void pthread_join(void *status)
(1)该函数是终止一个线程的方式之一;(2)如果该线程未脱离,则其线程ID和退出状态将一直保留到调用进程内的另外某个线程调用pthread_join为止;(3)指针status不能指向局部于调用线程的对象。
二、终止一个线程三种方法
1.线程调用pthread_exit()函数;
2.线程启动函数调用return,返回值就是线程的终止状态;
3.所在进程的main()函数返回,或者某个线程调用了exit()和_exit()函数,那么该进程会立刻终止,包括它的仍在运行的任意线程。
阅读全文
0 0
- 线程基本函数简介
- 几个基本线程函数
- 基本线程函数
- 线程的基本函数
- linux线程 基本函数 笔记
- 线程——基本函数
- 线程中的一些基本函数
- 获取进程和线程id函数简介
- Matlab interp1 函数的基本用法简介
- pthread 基本线程函数 和 定时器
- 线程基本编程——线程函数大全
- 线程基本编程——线程函数大全
- 线程基本编程——线程函数大全
- 线程基本编程——线程函数大全
- Linux 线程基本编程——线程函数大全
- 线程基本编程——线程函数大全
- 线程基本编程——线程函数大全
- 线程基本编程——线程函数大全
- 使用js显示本地图片
- es6学习记录 module功能
- JSONObject.toBean解析日期异常
- python爬虫之追女神监督微博信息
- HDU1164 Eddy's research I
- 线程基本函数简介
- [leetcode]472. Concatenated Words
- elasticsearch spring 整合
- 使用Android Studio进行UI测试与Record Espresso Test自动生成测试代码
- 如何让Asp.net TextBox控件只允许输入数字
- 【OpenGL】绘制一个点
- Simulink数据保存提取和示波器显示
- Function Run Fun POJ
- 点击打印按钮,开始渲染iframe然后执行打印事件