linux中线程相关函数
来源:互联网 发布:闽南歌心事谁人知简谱 编辑:程序博客网 时间:2024/05/21 06:34
#include <pthread.h>
int pthread_equal(pthread_t tid1, pthread_t tid2);
返回值:如果相等返回非0,否则返回0
2.获取线程自身的线程ID。
#include <pthread.h>
pthread_t pthread_self(void);
返回值:调用线程的线程ID
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg);
返回值:若成功返回0;如果失败,返回错误编号
#include <pthread.h>
void pthread_exit(void *rval_ptr);
#include <pthread.h>
int pthread_join(pthread_t thread, void **rval_ptr);
返回值: 若成功返回0,失败返回错误编号
如果线程只是从它的启动例程中返回, rval_ptr将包含返回码。如果线程被取消,由rval_ptr 指定的内存单元就置为 PTHREAD_CANCELED。
如果线程已经处于分离状态, pthread_join 调用就会失败,返回 EINVAL。
如果 rval_ptr 为 NULL,则调用pthread_join 函数将等待指定的线程终止,但是并不获取线程的终止状态。
5.请求取消同一进程中的其他线程
#include <pthread.h>
int pthread_cancel(pthread_t tid);
返回值:若成功则返回0,否则返回错误编号
在默认情况下,pthread_cancel 函数会使得由 tid 标识的线程的行为表现为如同调用了参数为 PTHREAD_CANCELD的pthread_exit函数,但是,线程可以选择忽略取消方式或者是控制取消方式。注 意,pthread_cancel并不等待线程终止,它仅仅是提出请求。
线程可以安排它退出时需要调用的函数,这与进程可以用 atexit 函数安排进程退出时需要调用的函数是类似的。这样的函数称为:线程清理处理程序(thread cleanup handler)。线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说他们的执行顺序与他们注册时的顺序相反。
#include <pthread.h>
void pthread_cleanup_push(void (*rtn)(void *), void *arg);
void pthread_cleanup_pop(int execute);
当线程执行以下动作时调用清理函数,调用参数为arg,清理函数 rtn 的调用顺序是由pthread_cleanup_push 函数来安排的。
1)调用pthread_exit时。
2)响应取消请求时。
3)用非零 execute参数调用 pthread_cleanup_pop 时。
如果execute 参数为0,清理函数将不被调用。无论是否为0,pthread_cleanup_pop都将删除上次 pthread_cleanup_push 调用建立的清理处理程序。
注意:
1)如果线程是通过从它的启动例程中返回而终止的话(例如通过return函数),那么它的清理处理程序就不会被调用。
2)清理处理程序是按照与他们安装时相反的顺序被调用的。
3)这些函数有一个限制,由于他们可以实现为宏,所以必须在与线程相同的作用域中以匹配对的形式使用,否则,程序编译可能通不过。 pthread_cleanup_push 的宏定义可包含字符{,在这种情况下,对应的匹配字符 } 就要在 pthread_cleanup_pop 定义中出现。
#include <pthread.h>
int pthread_detach(pthread_t tid);
返回值:若成功返回0,失败返回错误编号
7.进程原语和线程原语的比较
进程原语 线程原语 描述
fork pthread_create 创建新的控制流
exit pthread_exit 从现有的控制流中退出
waitpid pthread_join 从控制流中得到退出状态
atexit pthread_cancel_push 注册在退出控制流时调用的函数
getpid pthread_self 获取控制流的ID
abort pthread_cancel 请求控制流的非正常退出
转自http://blog.chinaunix.net/u3/105349/showart_2135965.html
- linux中线程相关函数
- linux中线程相关函数
- linux线程相关函数
- linux线程相关函数
- linux相关线程函数
- linux线程相关函数详解
- linux下线程通信相关函数
- larbin中线程相关 pthread_cond_wait() 函数
- linux中select()函数相关:
- linux中线程的基本相关知识
- Linux C 编程--1:Linux C编程线程相关函数
- 线程相关函数
- 线程相关函数汇总
- 线程相关函数
- 线程相关函数讲解
- 线程相关函数
- 线程一些相关函数
- pthread_create线程相关函数
- 网站开发
- 奇妙的二叉树:Huffman的贡献
- GridView删除行的两个方法
- java经典网址
- 学习技术方法——之问人(中)
- linux中线程相关函数
- Linux常用命令一览
- 记录widows下面j2ee一些设置
- Ubuntu配置服务启动与否的工具
- 在虚似机上如何挂载U盘
- Unicode UTF-8 Ansi 互转及MultiByteToWideChar和WideCharToMultiByte用法等编码相关
- job
- DOM-Based XSS
- 求《车间货物流通管理系统》毕业设计论文