linux应用程序设计基础--多线程程序设计
2012-11-21 14:22
211 查看
theme:多线程程序设计
author:Jeff.Xue
contact information:contactmexkj@163.com
1.使用多线程原因
线程比进程节俭,轻量级
运行一个进程的多个线程,他们使用相同的地址空间,线程间切换更快
是CPU更有效
改善程序结构
2.多线程遵循POSIX线程接口:pthread(#include <pthread.h>)
连接时需要libpthread.a库
3.创建线程
tidp ---- 线程id
attr ---- 属性
start_rtn ---- 线程要执行的函数
arg ---- 参数
4.终止线程exit/_exit
从启动例程中返回
其他进程终止
线程自己调用pthread_exit
5.线程等待
阻塞调用进程,rval_ptr ---- 线程退出时的返回值的指针
6.线程标识 ---- 返回线程id
7. 线程清除
正常:pthread_exit/return
不正常:其他干预/出错(存在资源释放问题)
author:Jeff.Xue
contact information:contactmexkj@163.com
1.使用多线程原因
线程比进程节俭,轻量级
运行一个进程的多个线程,他们使用相同的地址空间,线程间切换更快
是CPU更有效
改善程序结构
2.多线程遵循POSIX线程接口:pthread(#include <pthread.h>)
连接时需要libpthread.a库
3.创建线程
int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,void *(*start_rtn)(void),void *arg);
tidp ---- 线程id
attr ---- 属性
start_rtn ---- 线程要执行的函数
arg ---- 参数
4.终止线程exit/_exit
void pthread_exit(void * rval_ptr);
从启动例程中返回
其他进程终止
线程自己调用pthread_exit
5.线程等待
int pthread_join(pthread_t tid,void **rval_ptr);
阻塞调用进程,rval_ptr ---- 线程退出时的返回值的指针
6.线程标识 ---- 返回线程id
pthread_t pthread_self(void);
7. 线程清除
正常:pthread_exit/return
不正常:其他干预/出错(存在资源释放问题)
//pthread_cleanup_push到pthread_cleanup_pop 来解决资源释放(包括exit 异常 不包括return) void pthread_cleanup_push(void(*rtn)(void *),void *arg);//将清楚函数压入清除栈 void pthread_cleanup_pop(int execute);//将清除函数弹出清除栈
相关文章推荐
- 实验2 多线程应用程序设计与串行端口程序设计 实验报告
- linux应用程序设计基础--进程控制编程
- Linux程序设计学习笔记----多线程编程基础概念与基本操作
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - System V进程间通信基础 分类: Linux --- 应用程序设计 2014-11-11 13:08 51人阅读 评论(0) 收藏
- 【原创】《Linux高级程序设计》杨宗德著 - Linux多线程编程 - 线程属性控制 分类: Linux --- 应用程序设计 2014-11-30 20:54 68人阅读 评论(0) 收藏
- 【原创】《Linux高级程序设计》杨宗德著 - Linux多线程编程 - 线程概念及创建线程 分类: Linux --- 应用程序设计 2014-11-19 17:31 82人阅读 评论(0) 收藏
- linux 应用程序设计基础--系统调用访问文件
- 【原创】《Linux高级程序设计》杨宗德著 - Linux Socket网络编程基础 - 网络通信基础 分类: Linux --- 应用程序设计 2014-12-03 22:46 71人阅读 评论(0) 收藏
- linux_c 开发(6-1)多线程程序设计_线程基础
- Linux程序设计--shell程序设计基础(二)
- linux 应用程序设计基础--GCC编译器
- Linux应用程序设计之网络基础编程
- linux 应用程序设计基础--GDB调试
- linux 应用程序设计基础--库函数访问文件
- linux 应用程序设计基础--进程控制原理
- 【原创】《Linux高级程序设计》杨宗德著 - Linux多线程编程 - 线程同步机制 分类: Linux --- 应用程序设计 2014-11-21 10:44 63人阅读 评论(0) 收藏
- 【原创】《Linux高级程序设计》杨宗德著 - Linux Socket网络编程基础 - 网络调试工具 分类: Linux --- 应用程序设计 2014-12-05 17:19 84人阅读 评论(0) 收藏
- Linux程序设计--shell程序设计基础(一)
- linux 应用程序设计基础--Makefile工程管理
- linux 应用程序设计基础--时间编程