linux内核:futex锁

1、背景

多线程间需进行通信,锁是通信的主要机制。但是每次使用都会引发系统调用,当锁具有低争用率时,系统调用可能会构成显著的开销。经研究发现,很多同步是无竞争的,即某个进程进入互斥区,到再从某个互斥区出来这段时间,常常是没有进程也要进这个互斥区或者请求同一同步变量的。但是在这种情况下,这个进程也要陷入内核去看看有没有人和它竞争,退出的时还要陷入内核去看看有没有进程等待在同一同步变量上。这些不必要的系统调用(或者说内核陷入)造成了大量的性能开销。为了解决这个问题,Futex就应运而生。futex是一种快速的用户级别的锁,他其实是由用户态和内核态协助完成。

资料:
https://hardcore.feishu.cn/docs/doccn9Ld4O9tGh7DenRv3GOj7Uh

posted @   小海哥哥de  阅读(234)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示