pthread学习笔记(二)--pthread常用API及简单介绍
来源:互联网 发布:京东品类销售数据 编辑:程序博客网 时间:2024/06/05 09:50
经过了上篇文档的初步学习,对pthread有了一个简单的感性认识,但是对pthread的认识还是比较少,在这篇文档当中将要主要学习pthread的一些常用的API。
首先是pthread的线程创建API: pthread_create
当创建函数执行成功的时候返回0,并把创建的线程tid写入传入的线程指针中去(第一个参数),否则返回一个非零值并设置errno。
其中,第一个和第三个参数是必须要设置的,其他两个参数可以根据情况设置,当没有需求的时候传入NULL即可。
pthread_exit: 终止当前线程
pthread_join:挂起当前线程直到指定的线程终止为止(这个函数对于pthread十分重要,正如上一篇文档中所说的,不调用该函数可能会造成后续的create失败的问题)。
pthread_cancel: 撤销一个线程
线程属性:(上文中create函数的第二个参数,类型为pthread_attr_t,可以使用pthread_attr_XXXX函数族调用)
detachstate:分离或者切入状态,有两个值PTHREAD_CREATE_JOINABLE(default value),PHTREAD_CREATE_DETACHED
schedpolicy: 调度策略,取值有: SCHED_OTHER, SCHED_FIFO
schedparam: 调度策略相关
inheritsched: PTHREAD_EXPLICIT_SCHED(default value), PTHREAD_INERIT_SCHED
scope: 时间片,取值有:PTHREAD_SCOPE_SYSTEM(default value每个线程 一个系统时间片), PTHREAD_SCOPE_PROGCESS(线程共享系统时间片)。
pthread cleanup宏
pthread cleanup宏主要用来处理线程的推出状态,pthread_exit和pthread_join等可以作为它的参数
互斥mutex
由于线程是并发执行的,因此有时候需要对一些数据进行保护,例如多线程标准输出如果不加以处理,那么输出基本上都会是乱码,此时就可以使用mutex对输出流进行控制,一个线程执行写入操作的时候,加一把互斥锁,以防别的线程同时写入。
互斥对象在pthread中的定义为pthread_mutex_t,以下是它的一些API函数:
条件变量
线程使用条件变量对象来阻塞自己以等待某个特定条件的发生。
条件对象的定义为pthread_cond_t
至此,基本的pthread的API函数就学习到这里了,在后续的学习当中,将会结合例子更深入的学习。
- pthread学习笔记(二)--pthread常用API及简单介绍
- pthread常用API及简单介绍
- pthread学习笔记(一)
- pthread学习笔记
- pthread学习笔记
- pthread 学习笔记
- [Linux]pthread学习笔记
- pthread线程编程常用API
- pthread(二)
- pthread API
- Pthread 介绍
- Pthread 学习(1)
- Linux 多线程编程(Pthread 库)学习笔记 二
- pthread线程学习笔记一
- Linux线程(pthread)学习笔记
- iOS多线程(二) 实现方案上(pthread,NSThread介绍)
- pthread 学习
- pthread学习
- SQLite3中TimeStamp的使用问题
- 汇编二进制双精度加法实验程序
- 使用Busybox1.13.3制作yaffs2根文件系统
- ANDROID GRIDVIEW 点击某个位置获取某个单元格
- 关于UI自动化技术及测试的一些看法
- pthread学习笔记(二)--pthread常用API及简单介绍
- PK擂台:搜狗浏览器3.0预览版与IE9性能对比
- Ajax post乱码问题解决方案
- @SuppressWarnings用法
- 动态nginx缓存优化加速搭建教程
- 纯 C++ 代码创建并保存 EXCEL 文件
- 在zend Framework 中使用Smarty,并使用zend的助手功能
- java类中的限定词
- 尽量用strncpy