您当前的位置: 首页 >  linux

DS小龙哥

暂无认证

  • 0浏览

    0关注

    679博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux系统编程-(pthread)线程通信(自旋锁)

DS小龙哥 发布时间:2022-01-25 00:30:00 ,浏览量:0

1. 自旋锁介绍

自旋锁不管是内核编程,还是应用层编程都会用到;自旋锁和互斥量类似,它不是通过休眠使进程阻塞,而是在获取锁之前一直处于忙等(也就叫自旋)状态。

自旋锁可用于下面的情况:锁被持有的时间短,并且线程不希望再重新调度上花费太多的成本。自旋锁通常作为底层原语用于实现其他类型的锁。根据他们所基于的系统架构,可以通过使用测试并设置指令有效地实现。当然这里说的有效也还是会导致CPU资源的浪费:当线程自旋锁变为可用时,CPU不能做其他任何事情,这也是自旋锁只能够被只有一小段时间的原因。

自旋锁总结:

  1. 自旋锁和互斥锁的使用框架、场景相似的。

  2. 互斥锁在得不到锁的时候会休眠。

  3. 自旋锁在得不到锁的时候不会休眠,会一直检测锁的状态。

  4. 自旋锁比较适合保护变量赋值、函数调用等场景。

2. 自旋锁相关接口函数
1. 销毁自旋锁
int   pthread_spin_destroy(pthread_spinlock_t *);
关注
打赏
1664009229
查看更多评论
立即登录/注册

微信扫码登录

0.0404s