
Linux:并发与同步
文章平均质量分 97
本系列博文将探讨 Linux 下的并发与同步机制,包括进程、线程的基本概念,以及常见的同步原语,如互斥锁、自旋锁、读写锁、信号量和条件变量。
AgustDzz
这个作者很懒,什么都没留下…
展开
-
Linux:并发与同步(一)
本博客将深入探讨Linux中的并发与同步机制,从原理到实践,逐步揭示其中的奥秘。我们将介绍Linux中常见的并发编程概念,例如进程、线程、锁和信号量,以及它们在实际应用中的使用技巧和最佳实践。 并发访问,指的是多个内核代码路径同时访问和操作数据,这个代码可执行路径有以下几种情况: 临界区指的是访问和操作共享数据的代码段,其中的资源不能被多个执行线程访问。为了防止并发访问,就需要保证访问临界区的原子性,即在临界区内不能有多个并发源同时执行。 在内核中产生并发访问的并发源主要有以下几种,但是分单处理器系统原创 2024-06-11 23:52:04 · 1191 阅读 · 2 评论 -
Linux:并发与同步(二)----排队自旋锁、互斥锁及源码分析
然而,自旋锁(spinlock)和其他锁不同,虽然它们存在于进程中,但对一个 CPU 来说,自旋锁的数量是固定的。最终,通过自旋锁和等待机制确保锁的正确获取,同时处理各种错误和信号情况。 顾名思义,即认为锁的持有者正在临界区执行时,可以断定锁的持有者可以很快退出临界区并且释放该锁,比起进入睡眠队列,不如像自旋锁一样等待,由于睡眠和唤醒付出的代价可能更高。MUTEX_FLAG_HANDOFF:对互斥锁的等待队列中的第一个等待者会设置这个标志位,锁持有者在解锁的时候把锁直接传递给第一个等待者。原创 2024-06-17 21:32:10 · 995 阅读 · 3 评论