- 博客(2)
- 收藏
- 关注
原创 简单的非公平自旋锁以及基于排队的公平自旋锁的实现
基础 什么是自旋锁 由于本文主要讨论的都是自旋锁,所以首先就需要弄明白什么是自旋锁。 自旋锁最大的特征,就是它会一直循环检测锁的状态,当锁处于被占用的状态时,不会将当前线程阻塞住,而是任由它继续消耗CPU Cycles,直到发现需要的锁处于可用状态。 有了这一层了解,自旋锁的优势和劣势,以及其适用场景也就一目了然了。 优势: 没有线程阻塞,也就没有了线程上下文切换带来的开销 ...
2018-03-24 14:47:52 1588
原创 为什么volatile++不是原子性的?
问题 在讨论原子性操作时,我们经常会听到一个说法:任意单个volatile变量的读写具有原子性,但是volatile++这种操作除外。 所以问题就是:为什么volatile++不是原子性的? 答案 因为它实际上是三个操作组成的一个符合操作。 首先获取volatile变量的值 将该变量的值加1 将该volatile变量的值写会到对应的主存地址 一个很简单的例子: 如果两个线程在...
2018-03-18 21:23:19 10677 9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人