posix thread概述

本文详细阐述了Unix进程中进程、线程的概念,解释了异步、并发与并行的区别,并深入探讨了共享数据同步的关键技术,如互斥量与条件变量的作用与应用。同时,提供了pthread库的基本特性和常用结构概述,帮助开发者理解和运用这些技术以避免线程冲突和提升程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基本概念

一个Unix进程可以理解为一个线程加上地址空间、文件描述符和其他数据。
异步表明事情相互独立发生, 除非有强加的依赖性。

并发指实际可能是穿行发生的事情好像同时发生一样。
并行指并发序列同时执行。

线程安全是指代码能够被多个线程调用而不会产生灾难性后果。

2. 共享数据——同步对象——互斥量——条件变量的关系

基本的pthread同步模型使用互斥量来保护共享数据、使用条件变量来通信。互斥量允许线程在访问共享数据时候锁定它,条件变量允许线程等待共享数据达到某个期望的状态。

互斥量阻止线程间发生不可预期的冲突。
条件变量让线程等待知道可以安全的执行。
互斥量和条件变量都是用来同步线程间操作的。

3. 常见结构

线程系统的三个基本要素:执行环境、调度、同步pthread_t 线程标示符
pthread_mutex_t 互斥量
pthread_code_t 条件变量
pthread_key_t 线程私有权握访问键
pthread_attr_t 线程属性对象
pthread_condattr_t 条件变量属性对象

4. pthread特性

pthread函数有错时不会设置errno变量。
pthread中没有想perror一样按给定格式打印错误信息的函数,它使用strerror函数获得错误代码的描述然后打印到stderr中

转载于:https://www.cnblogs.com/licongyu/p/5031990.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值