已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux多线程编程,IEEE POSIX 标准 p1003.1c (Pthreads) 定义了处理线程的一系列C 语言类型的API。 在Linux中,线程一般被认为是“轻量级的进程”。 Linux 创建进程所使用的函数是fork() 或者vfork()。而对线程的创建和管理Linux 可以使用POSIX的线程库pthreads提供的APIs。 使用fork()创建进程和使用POSIX线程库差别: 使用fork() 创建进程的特点: 代价昂贵,通常子进程需要拷贝父进程的整个上下文,比如数据等。 进程间的通信方式比较复杂,比如使用管道、消息、共享内存等方法。 操作系统在实现进程间的切换比线程切换更费时。 使用POSIX pthreads库创建线程的特点: 线程可使用存在于进程中的资源。 线程间的通信方式更容易,比如通过进程中的变量,可以让多个线程共享数据。 操作系统对线程的切换比对进程的切换更容易和快速。,Linux多线程编程,线程的创建 pthreads 线程库中提供的创建线程的函数是pthread_create() #include int pthread_create(pthread_t * thread, pthread_attr_t * attr, void *(*start_routine)(void *), void * arg); 线程的退出 在线程的处理函数中,可以显示的调用pthread_exit()结束线程执行,也可以不调用pthread_exit(),而只是让线程处理程序返回。 void pthread_exit (void* retval); 除了pthread_exit() 函数,可以让当前调用pthread_exit() 的线程显示地退出外,线程也可以使用 pthread_cancel() 函数终止其他线程的执行。 int pthread_cancel(pthread_t thread);,等待线程结束 pthread_join() 函数会挂起创建线程的线程的执行,直到等待到想要等待的子线程。 int pthread_join(pthread_t th, void *thread_return); 线程的分离 主线程创建子线程,且子线程本身自己有自我回收内存资源的能力。 int pthread_detach(pthread_t th); 获得当前线程标志 使用pthread_self() 函数可以获得当前线程的标志,pthread_self() 的返回值就是当前线程的标志。 pthread_t pthread_self(void);,线程互斥和同步Mutex,原子性。对mutex的加锁和解锁操作是原子的,一个线程进行 mutex 操作的过程中,其他线程不能对同一个 mutex 进行其他操作。 单一性。拥有mutex的线程除非释放mutex,否则其他线程不能拥有此mutex。 非忙等待。等待mutex的线程处于等待状态,直到要等待的mutex处于未加锁状态,这时操作系统负责唤醒等待此mutex的线程。 POSIX 线程库对mutex提供了以下函数进行操作: int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_unlock
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2034年中国轮胎翻新市场运行态势及行业发展前景预测报告
- 2024-2034年中国语音识别系统行业发展监测及投资前景展望报告
- 2024-2034年中国血液透析检测仪市场竞争态势及行业投资潜力预测报告
- 2024-2034年中国营养保健品行业市场深度分析及行业发展趋势报告
- 2024-2034年中国节能型门窗行业市场发展现状及投资潜力预测报告
- 2024-2034年中国自润滑轴承行业发展概况及行业投资潜力预测报告
- 2024-2034年中国能源清洁高效利用行业市场现状分析及竞争格局与投资发展研究报告
- 2024-2034年中国聚氨酯行业发展前景预测及投资战略研究报告
- 2024-2034年中国美容养生馆行业市场现状分析及竞争格局与投资发展研究报告
- 2024-2034年中国绞肉机行业供需分析及发展前景研究报告
- 2024届内蒙古自治区包头市高三下学期三模文综
- 2024年深圳市高三语文二模作文“科学分析”范文
- 新加坡留学完整版本
- 从偏差行为到卓越一生3.0版
- 20S517排水管道出水口图集
- 2024贵州日报社招聘23人高频考题难、易错点模拟试题(共500题)附带答案详解
- 理综-四川省泸州市2024届高三第三次教学质量诊断性考试试题和答案
- 新编大学生安全教育智慧树知到期末考试答案2024年
- 会计制度设计意义
- 高三二模作文材料“认知闭合”与“信息茧房”导写
- 基于深度学习的YOLO目标检测综述
评论
0/150
提交评论