
lock
air5005
希望能记录工作中学习到的所有知识,与大家分析、一起学习
展开
-
浅谈对原子锁的理解
对原子atomic操作的理解前言我们知道,当我们修改某一个变量的时候,在汇编层面看来,至少需要细分为“读->改->写”三个过程,也就是说,他们访问存储单元两次,第一次读原值,第二次写新值。假设这样一种场景,两个cpu同时对同一个存储器单元做“读->改->写”操作的话。首先,两个CPU都试图原创 2019-03-02 23:33:29 · 9870 阅读 · 0 评论 -
浅谈对读写锁的理解
浅谈对读写锁的理解概念理解读写锁,顾名思义,一个锁,分为两种形态,读状态和写状态,读写锁是专门为大多数读状态情况而设计的。这种情况下,读写锁可以提供比其他锁(比如互斥锁,自旋锁等)更大的扩张性,因为读写锁允许同一时刻多个读任务同时持有锁。增加读任务的并发性。特征:写锁优先级高,写独占,读共享1.写模式加锁时,解锁前,所有对该线程加锁的线程都会被阻塞。2.读模式加锁时,如果线程是读加...原创 2019-03-03 00:12:18 · 1566 阅读 · 0 评论 -
浅谈对自旋锁的理解
浅谈对自旋锁的理解概念理解何谓自旋锁(spin lock)?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻, 最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡...原创 2019-03-03 00:40:08 · 1133 阅读 · 0 评论 -
浅谈对RCU锁的理解
概念Read-Copy Update,简称RCU,可以认为它是一种锁或者一种同步机制,其实说它是一种同步机制应该更恰当写,因为本身RCU的核心实现没有用的锁,只是用了内存屏障+TLS(线程本地变量)或者是Per-CPU变量都可以。RCU的使用场景是读多写少的场景,但是他和读写锁最大的差异就是,读写锁在持有写锁的时候,读锁会被阻塞,但是RCU运行写锁高并发,就算在持有写锁的时候,也能实现读锁不被...原创 2019-03-20 10:28:47 · 4739 阅读 · 0 评论