网络编程5

线程间竞争
摘要由CSDN通过智能技术生成

线程间竞争
一、基本概念
原子操作:中途不会被打断的操作称为原子操作(不会被其他
线程竞争影响的操作)
竞争与同步:
同一个进程中的线程共享进程中绝大多数资源,当它们随意竞争
时可能会导致资源被破坏、脏数据、不完整、不一致的情况
通过一些方法让线程在竞争资源时相互协调,避免出现以上情况,
这种线程间协调工作称为线程同步
临界区和临界资源:
能够被多个线程同时访问的代码称为临界区、被同时访问的资源称为
临界资源

二、互斥量(互斥锁)
有些系统的man手册没有关于mutex的文档需要安装:
sudo apt-get install manpages-posix-dev

pthread_mutex_t 是一种数据类型 可以定义互斥量变量

int pthread_mutex_init(pthread_mutex_t *restrict mutex,
       const pthread_mutexattr_t *restrict attr);
功能:初始化一个互斥量
mutex:要初始化的互斥量变量
attr:对互斥量的属性进行设置,一般给NULL即可
注意:一般默认是开锁状态,也可使用PTHREAD_MUTEX_INITIALIZER
对互斥量变量进行初始化
例如:
   pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;


    int pthread_mutex_lock(pthread_mutex_t *mutex);
功能:对互斥量进行加锁,成功则继续执行下文,失败则阻塞,
直到互斥量被解锁并加锁成功,才返回

   int pthread_mutex_trylock(pth
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值