多核软件开发技术第五讲 Linux多线程编程及调优.ppt
《多核软件开发技术第五讲 Linux多线程编程及调优.ppt》由会员分享,可在线阅读,更多相关《多核软件开发技术第五讲 Linux多线程编程及调优.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、多核软件开发技术第五讲:Linux多线程编程及调优 北京大学北京大学二零零八年春季二零零八年春季*致谢:感谢致谢:感谢IntelIntel对本课程项目的资助对本课程项目的资助本讲主要内容本讲主要内容POSIX 线程库线程库Pthreads介绍介绍 POSIX pthreads库提供的基本线程的操作库提供的基本线程的操作 线程的属性线程的属性 线程互斥和同步线程互斥和同步 使用使用GDB 调试线程以及线程的调优调试线程以及线程的调优 POSIX 线程库线程库Pthreads介绍介绍 使用使用fork()创建进程创建进程 代价昂贵代价昂贵进程间通信方式较复杂进程间通信方式较复杂操作系统在实现进程间
2、的操作系统在实现进程间的切换比线程切换更费时切换比线程切换更费时 使用使用pthreads库创建线程库创建线程创建进程比创建线程更快创建进程比创建线程更快线程间的通信方式更容线程间的通信方式更容操作系统对线程的切换比对操作系统对线程的切换比对进程的切换更容易和快速进程的切换更容易和快速 POSIX pthreads库提供的基本线程的操作库提供的基本线程的操作线程的创建线程的创建#include int pthread_create(pthread_t *thread,pthread_attr_t*attr,void*(*start_routine)(void*),void*arg);线程的退出
3、线程的退出 显示的调用显示的调用pthread_exit()结束线程执行结束线程执行 void pthread_exit(void*retval);让线程处理程序返回让线程处理程序返回 使用使用 pthread_cancel()函数终止其他线程的执行函数终止其他线程的执行 int pthread_cancel(pthread_t thread);等待线程结束等待线程结束 使用使用 pthread_join()函数等待被创建的线程结束函数等待被创建的线程结束 pthread_join()函数会挂起创建线程的线程的执行函数会挂起创建线程的线程的执行 直到等待到想要等待的子线程直到等待到想要等待的子
4、线程 函数原型函数原型:int pthread_join(pthread_t th,void*thread_return);线程的分离线程的分离 主线程可以不断地创建子线程主线程可以不断地创建子线程 子线程本身自己有自我回收内存资源的能力子线程本身自己有自我回收内存资源的能力 函数原型:函数原型:int pthread_detach(pthread_t th);pthread_detach()和和 pthread_join()一般情况一般情况下不能同时使用下不能同时使用 线程的属性线程的属性 属性名属性名意义意义 detachstate选择被创建的线程是处于可加入的状态还是分离状态 sched
5、policy 为被创建的线程选择调度策略。schedparam 为被创建的线程选择调度参数。inheritsched选择对新创建的线程的调度策略和调度参数是否被schedpolicy 和schedparam 属性决定或者是通过父线程继承而得到的 scope为选择被创建的线程调度竞争范围。线程互斥和同步线程互斥和同步 mutexMutex:互斥设备:互斥设备(MUTual Exclusion device)mutex有如下特性:有如下特性:原子性:对原子性:对mutex的加锁和解锁操作是原子的的加锁和解锁操作是原子的单一性:拥有单一性:拥有mutex的线程除非释放的线程除非释放mutex,否则,
6、否则其他线程不能拥有此其他线程不能拥有此mutex非忙等待:等待非忙等待:等待mutex的线程处于等待状态,直到的线程处于等待状态,直到要等待的要等待的mutex处于未加锁状态,这时操作系统负处于未加锁状态,这时操作系统负责唤醒等待此责唤醒等待此mutex的线程的线程 在在POSIX 线程库中,存在三中类型的线程库中,存在三中类型的mutex:快速快速(fast)mutex递归递归(recursive)mutex错误检测错误检测(error checking)mutex。POSIX 线程库中与线程库中与mutex相关函数相关函数 int pthread_mutex_init(pthread_m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多核软件开发技术第五讲 Linux多线程编程及调优 多核 软件 开发 技术 第五 Linux 多线程 编程
限制150内