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

链接地址:https://www.31ppt.com/p-6266158.html