高性能SPSC无锁队列设计之路

本文整理了Single Producer/Consumer lock free Queue step by step这篇文章里头关于高性能的SPSC无锁队列使用遵循的四个原则:

  • 单写原则
  • 使用lazySet替代volatile set
  • 使用位运算替代取模运算
  • 避免伪共享
  • 减少缓存一致性冲突

doc

  • Single Producer/Consumer lock free Queue step by step
  • Single Writer Principle
  • Atomic*.lazySet is a performance win for single writers
  • 单独写原则Single Writer Principle
  • Java性能优化要点之五: 队列与lazySet
  • 学习一下Disruptor
  • The Mythical Modulo Mask
  • 伪共享和缓存行填充,从Java 6, Java 7 到Java 8
  • Java8的伪共享和缓存行填充—@Contended注释
  • Diving Deeper into Cache Coherency
  • 缓存一致性(Cache Coherency)入门

原文发布于微信公众号 - 码匠的流水账(geek_luandun)

原文发表时间:2017-09-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MasiMaro 的技术博文

hook键盘驱动中的分发函数实现键盘输入数据的拦截

我自己在看《寒江独钓》这本书的时候,书中除了给出了利用过滤的方式来拦截键盘数据之外,也提到了另外一种方法,就是hook键盘分发函数,将它替换成我们自己的,然后再...

1042
来自专栏C/C++基础

计算机基础知识

攻击过程如下: 1. 攻击者通过MIM(比如arp欺骗等)劫持server与客户端浏览器之间的http包; 2. 攻击者生成一对伪造的RSA密钥: fa...

831
来自专栏菩提树下的杨过

rpc框架之 thrift连接池实现

接前一篇rpc框架之HA/负载均衡构架设计 继续,写了一个简单的thrift 连接池: 先做点准备工作: package yjmyzz; public cla...

6538
来自专栏技术记录

前端插件——头像截图上传插件的使用(带后台)

效果图:实现上传头像,右边是预览,有三个大小,可以对头像进行裁剪 ? HTML: toParentData 和 img 返回的是图片裁剪后的base64编码。其...

1.1K5
来自专栏hbbliyong

你不可错过的二维码生成与解析-java后台与前端js都有

1.二维码分类   二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型。 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成...

6078
来自专栏后台开发+音视频+ffmpeg

dpvs源码分析(续)

在上一篇https://cloud.tencent.com/developer/article/1180256?s=original-sharing,我们已经介...

5111
来自专栏MasiMaro 的技术博文

WinSock 重叠IO模型

title: WinSock 重叠IO模型 tags: [WinSock 模型, 网络编程, 重叠IO模型] date: 2018-06-29 20:26:...

1732
来自专栏不想当开发的产品不是好测试

awk中NF的使用

统计机器中网络连接各个状态个数 netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[...

2417
来自专栏Golang语言社区

用Go实现一门解释型语言

A interpreter language implementation in Go

922
来自专栏MasiMaro 的技术博文

windows 安全模型简介

操作系统中有些资源是不能由用户代码直接访问的,比如线程进程,文件等等,这些资源必须由系统级代码由RING3层进入到RING0层操作,并且返回一些标识供用户程序使...

2542

扫码关注云+社区

领取腾讯云代金券