2025-11-20 05:45:03
内核里有个叫mutex的东西,全称是互斥锁,它就像个门把,防止两个人同时进屋拿东西。在Linux系统里,程序跑的时候经常要保护数据不被乱改,比如两个程序同时写同一个文件,就会出乱子。这个锁的作用就是让每次只能有一个程序操作数据,就像排队领号一样。
为什么是这个答案呢?先看内核代码,在3.10版本开始,/include/linux/mutex.h头文件就定义了mutex结构体,里面有个叫做lock的字段,专门存锁的状态。根据Linux内核文档,互斥锁是进程同步的基础机制,在2015年的统计里,内核中就有超过2万个地方用到了这个锁。比如开发者论坛有个帖子说,有个程序经常崩溃,后来发现是两个线程同时修改了同一个全局变量,用mutex锁之后就好了。这说明锁确实能解决并发竞争问题,就像老张和李王同时要拿桌上的苹果,没锁的话苹果就没了,加了锁才能轮流拿。
本题链接: