E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
无锁队列
无锁队列
(Lock-Free Queue)
一、什么是
无锁队列
无锁队列
(Lock-FreeQueue)是一种不使用锁机制(如互斥锁或读写锁)来实现线程安全的数据结构,是lock-free中最基本的数据结构。
笨死de猪
·
2024-03-24 16:35
游戏服务器架构
开发语言
c++
无锁队列
无锁队列
的实现(c语言)-备份,有问题
1.无锁编程与有锁编程的效率无锁编程,即通过CAS原子操作去控制线程的同步。如果你还不知道什么使CAS原子操作,建议先去查看相关资料,这一方面的资料网络上有很多。CAS实现的是硬件级的互斥,在线程低并发的情况下,其性能比普通互斥锁高效,但是当线程高并发的时候,硬件级互斥引入的代价与应用层的锁竞争产生的代价同样都是很大的。这时普通锁编程其实是优于无锁编程的。硬件级原子操作使应用层的操作变慢,而且无法
大隐隐于野
·
2024-02-11 07:09
#
高性能编程
c语言
无锁队列
Disruptor使用笔记
一.背景Disruptor是由英国外汇公司LMAX于2010年公开的一款用于线程间数据交互的高并发组件,其原型是一个有界的环形队列,通过巧妙的设计使得该队列在多线程环境下无需加锁就能保证消息的安全可靠,为软件系统带来指数级性能提升,可以参考博文https://blog.csdn.net/21aspnet/article/details/89709221了解关于disruptor的更多内容。由于Di
MOONICK
·
2024-02-03 12:23
c++
性能优化
中间件
C++
无锁队列
的原理与实现
目录1.
无锁队列
原理1.1.队列操作模型1.2.
无锁队列
简介1.3.CAS操作2.
无锁队列
方案2.1.boost方案2.2.ConcurrentQueue2.3.Disruptor3.
无锁队列
实现3.1
流星雨爱编程
·
2024-01-21 15:52
#编程技巧
开发语言
c++
C++多线程打工人
为啥写这个,今天面试问到了~当时基于信号量写了一个单线程+
无锁队列
的实现,但是面试官实际想要的是多线程+条件变量实现的方式。
Fireplusplus
·
2024-01-15 16:38
C++
教程
c++
生产者消费者
条件变量
生产者
消费者
长安链源码学习-- 交易池(四)
1.txQueue txQueue的数据结构为无锁并发队列,在文件annular_lockfree_queue.go中,看名字也可以看出其为循环
无锁队列
。
明神特烦恼
·
2024-01-07 23:20
CyberRT源码剖析
目录CyberRT代码总览:系统初始化mainBoard初始化Component初始化总结CyberRT代码总览:base:提供一些基础功能接口的封装,主要包括原子hash_map,读写锁,有界
无锁队列
keepmovingforward
·
2023-11-21 09:23
java
开发语言
CAS
无锁队列
的原理及实现(附代码)
简介在进入今天的主题之前,我们先来了解一下一般使用的比较常用的锁。互斥锁和自旋锁。互斥锁:如果取不到锁就会进入休眠,本身取锁的操作并不耗时,主要就是等待拿到锁的时间,并且这样的话会进行线程切换,比较耗资源;自旋锁就不一样了,在没有获取到锁的情况下不会休眠,而是一直忙等待下去,一直占据CPU,不进行线程的切换,这样的好处就是执行本身耗时比较短的操作时,加锁的代价比较小,但是如果本身加锁执行的操作很长
chauneyWang
·
2023-10-28 11:58
后台开发
readerwriterqueue 一个用 C++ 实现的快速
无锁队列
https://www.oschina.net/translate/a-fast-lock-free-queue-for-cpp?cmp&p=2Asingle-producer,single-consumerlock-freequeueforC++如果没有可靠的(已被测试的)实现,设计又有什么用呢?:-)我已经在GitHub发布了我的实现。自由的fork它吧!它由两个头部组成,一个是给队列的,还有
Leckun
·
2023-10-28 06:31
开发语言
c++
muduo源码学习base——Atomic(原子操作与原子整数)
Atomic(原子操作与原子整数)前置知识AtomicIntegerTget()getAndAdd()getAndSet()关于原子操作实现
无锁队列
(lock-free-queue)前置知识happens-before
4nc414g0n
·
2023-10-24 15:51
muduo
Learn
服务器
C++深度优化——
无锁队列
实现及测试
最近在研究
无锁队列
,从网上学习到了lock-free的定义,特此摘录如下:如果涉及到共享内存的多线程代码在多线程执行下不可能互相影响导致被hang住,不管OS如何调度线程,至少有一个线程在做有用的事,那么就是
腾昵猫
·
2023-10-14 15:42
c++
mq 高性能和低延迟
历史图片发自App规范标准openmessaging消息驱动解耦mq生态图片发自App图片发自Appmp架构领域模型图片发自App分布式系统架构图片发自App图片发自Appmq高性能低延迟探索图片发自App
无锁队列
优化图片发自
慧执行
·
2023-10-08 04:09
正文4:CAS
无锁队列
简单了解
文章目录1.为什么需要
无锁队列
?
谢白羽
·
2023-10-06 16:25
服务器开发专栏
Disruptor:
无锁队列
设计的背后原理
简介在高并发场景下,队列的速度和效率是关键。而Disruptor,一种高性能的并发队列,通过独特的设计,解决了传统队列在处理高并发时可能遇到的性能瓶颈。本文将深入分析Disruptor如何通过环形数组结构、元素位置定位以及无锁设计,实现高效的并发控制。技术细节1.环形数组结构首先,Disruptor使用一个固定长度的环形数组作为底层存储结构。这种数组的一大优点在于,它可以避免使用链表等动态数据结构
隐 风
·
2023-10-01 20:07
java消息中间件笔记
disruptor
分布式
大数据
java
消息队列
C++ 并发编程实战 第七章 设计无锁数据结构
实现线程安全的无锁栈7.2.2制止麻烦的内存泄漏:在无锁数据结构中管理内存7.2.3运用风险指针检测无法回收的节点7.2.4借引用计数检测正在使用中的节点7.2.5为无锁容器施加内存模型7.2.6实现线程安全的
无锁队列
小猴啊0.0
·
2023-09-30 00:04
开发语言
c++
并发编程
C++并发编程
c++11总结23——CAS(
无锁队列
)
1.概念CAS(CompareAndSwap)操作是一条CPU的原子指令,所以不会有线程安全问题。伪代码实现:CAS(addr,old,new)解释:将addr存放的只与old比较,如果等于old,则将new赋值给addr。c++代码实现://输入一个pAddr的地址,在函数内部判断其的值是否与期望值nExpected相等//如果相等那么就将pAddr的值改为nNew并同时返回true;否则就返回
却道天凉_好个秋
·
2023-09-03 09:44
c++11/17
c++11
无锁队列
什么是Netty
第二:Netty在NIO的基础上做了很多优化,比如零拷贝机制、高性能
无锁队列
、内存池等,因此性能会比NIO更高。
一只快乐的蓝巴德
·
2023-08-13 14:21
Netty
信息与通信
Netty
无锁队列
SPSCQueue及有锁队列的性能比较
说明所用
无锁队列
为SPSCQueue及boost的spsc_queue。
疼疼国王
·
2023-08-08 22:58
C/C++
c++
C++无锁编程——
无锁队列
(lock-free queue)
C++无锁编程——
无锁队列
(lock-freequeue)贺志国2023.7.11上一篇博客给出了最简单的C++数据结构——栈的几种无锁实现方法。
知行合一2018
·
2023-08-02 16:45
数据结构
c++
多线程
无锁编程
无锁队列
的几种实现及其性能对比
一、
无锁队列
用在什么样的场景?当需要处理的数据非常多,比如行情数据,一秒处理非常多的数据的时候,可以考虑用
无锁队列
。但是如果一秒只需要处理几百或者几千的数据,是没有必要考虑用
无锁队列
的。
linux大本营
·
2023-07-23 17:04
c/c++
linux
后台开发
CAS
无锁队列
DPDK&SPDK中的内存管理
在此基础上,DPDK主要实现了
无锁队列
ring,内存池mempool,内存堆heap来进行内存的分配和回收。
lizhongwen1987
·
2023-07-17 21:10
dpdk
spdk
内存管理
通过netty源码带你一步步剖析NioEventLoop 的任务队列原理
NioEventLoop的异步任务队列成员:NioEventLoop中对newTaskQueue接口的实现,返回的是JCTools工具包Mpsc队列(多生产者单一消费者
无锁队列
,(无界和有界都有实现)privatestaticQueuenewTaskQueue0
弯_弯
·
2023-07-17 16:09
java
后端
架构
一读一写情况下,
无锁队列
如何实现?
一读一写情况下,
无锁队列
如何实现?其实并不难,先说说一读一写
无锁队列
的实际应用吧。读写队列最大的应用是:一个线程收到事件或消息后直接加入到队列,而处理线程读取队列中的事件或消息,并加以处理。
很土
·
2023-06-18 02:55
技巧杂集
源码
null
struct
delete
c
阿里云 蚂蚁支付宝 钉钉 c++ 面经
详细讲一讲客户端和服务端的所有可能状态2、linux用什么命令查看上述状态呢3、你是否碰到过异常情况->大量time_wait状态的情况4、time_wait出现原因,所用资源,如何解决5、Redis基本数据结构6、算法题:实现一个
无锁队列
怎么又有bug单
·
2023-06-15 18:03
面经
阿里云
支付宝
面经
腾讯
c++
无锁队列
学习
加锁是一种悲观的策略,它总是认为每次访问共享资源的时候总会发生冲突。无锁是一种乐观的策略,它假设线程访问共享资源不会发生冲突,所以不需要加锁。1CAS核心思想无锁的策略使用一种比较交换的技术(CASCompareAndSwap)来鉴别线程冲突,一旦检测到冲突产生,就重试当前操作直到没有冲突为止。CAS是系统原语,CAS操作是一条CPU的原子指令,所以不会有线程安全问题。templateboolCA
强大的RGG
·
2023-06-15 16:36
C++学习
学习
c++
算法
rte_ring
dpdk的rte_ring实现的
无锁队列
,支持多生产者多消费者;实现上使用了cas原子操作,结构是环形队列,思路是使用预约生产(消费)来避免多个生产者(消费者)操作同一块区间。
sphinxLike
·
2023-04-21 19:20
腾讯云Kafka海量服务自动化运营实践
腾讯云CKafka针对开源Kafka进行了多种优化,其中包括
无锁队列
优化、异步刷盘优化、多版本支持以及GC优化等优化手段,对开源Kafka性能达到了数倍的提高。
Java烟雨
·
2023-04-14 09:38
java
kafka
面试
kafka
腾讯云
自动化
面试
分布式
认识
无锁队列
无锁队列
是lock-free中最基本的数据结构,一般应用在需要一款高性能队列的场景下。
孙兴芳
·
2023-03-22 13:28
深入浅出Golang中的sync.Pool
目录一、原理分析1.1结构依赖关系图1.2用图让代码说话1.3Put过程分析二、学习收获2.1如何自己实现一个
无锁队列
学习到的内容:1.一个64位的int类型值,充分利用高32位和低32位,进行相关加减以及从一个
·
2023-03-19 00:47
多线程编程精髓(四)
(1)锁使用实践经验总结:1.尽量减少锁的使用,加锁和解锁会有系统开销,临界区的代码是不能并发执行的,进入临界区次数频繁,线程竞争过于激烈则会陷入阻塞,让出CPU,导致多次无效的上下文切换,可使用
无锁队列
替换
菠落箩落萝
·
2023-02-04 23:40
DPDK 无锁ring
本文整理下之前的学习笔记,基于DPDK17.11版本源码,主要分析
无锁队列
ring的实现。
分享放大价值
·
2023-02-04 06:43
秒懂:JCTool 的 Mpsc 高性能
无锁队列
(史上最全+10W字长文)
文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送经典图书:《Java高并发核心编程(卷1)加强版》面试必备+大厂必备+涨薪必备加尼恩免费领免费赠送经典图书:《Java高并发核心编程(卷2)加强版》面试必备+大厂必备+涨薪必备加尼恩免费领免费赠送
40岁资深老架构师尼恩
·
2023-01-04 12:30
java
java
架构
zeromq
无锁队列
源码解析
前言在我刚学
无锁队列
的时候,在网上找了很多资料,但基本都是一上来就开始讲
无锁队列
的实现,这让我很困惑,到底什么是
无锁队列
呢,设计这玩意的意图是什么?接下来我将给大家好好分析一下
无锁队列
。
Mr . 孤独患者
·
2022-11-26 02:24
后端
zeromq
高并发
服务器
CPU缓存一致性:从理论到实战
本文转自:CPU缓存一致性:从理论到实战目录存储体系结构缓存原理缓存一致性协议内存屏障x86-TSO基准测试CAS原理原子操作
无锁队列
参考资料一、存储体系结构速度快的存储硬件成本高、容量小,速度慢的成本低
科英
·
2022-11-07 22:34
无锁队列
的实现
文章目录1、CAS原子操作的基本原理2、
无锁队列
的链表实现2.1结点以及
无锁队列
的框架2.2初始化——NoLockListInit2.3入队列——EnQueue2.4出队列——DeQueue3、整体代码与测试
你好,冯同学
·
2022-10-01 17:11
数据结构
汪文君 java_汪文君JAVA多线程编程实战 视频教程 下载
汪文君JAVA多线程编程实战视频教程下载00_00汪文君Java多线程编程实战|____3|____高并发编程第三阶段80讲总结与回顾,闲聊与感谢.mp4|____高并发编程第三阶段79讲实现一个高并发的
无锁队列
静心佛门
·
2022-04-13 10:56
汪文君
java
java多线程百度云_654619 汪文君Java多线程编程实战
资源内容:654619汪文君Java多线程编程实战|____3|____高并发编程第三阶段80讲总结与回顾,闲聊与感谢.mp4|____高并发编程第三阶段79讲实现一个高并发的
无锁队列
(Lock-Free
阡陌渊虹
·
2022-04-13 10:25
java多线程百度云
C++ 原子操作CAS和lockless
无锁队列
原子操作我们通常语义下是指不能被进一步分割的最小粒子,而在计算机中的原子操作一般是指“不可被中断的一个或一系列操作”,或者说是:多个线程执行一个操作,其中任何一个线程要么完全执行完这些操作,要么没有执行这个操作的任何一个步骤。在单核处理器系统中,能够在单条指令中完成的操作都可以认为是“原子操作”,因为在单条指令的执行过程中不会被中断。但是在多核时代,可能同时运行多个独立的CPU,即使是可以在单个指
雪*夹雨夹*雪
·
2022-03-23 07:40
C++
DPDK
c++
多线程
C++11如何实现
无锁队列
无锁操作的本质依赖的原子操作,C++11提供了atomic的原子操作支持atomiccompare_exchange_weak/compare_exchange_strong当前值与期望值相等时,修改当前值为设定值,返回true当前值与期望值不等时,将期望值修改为当前值,返回falsememory_order枚举值templateclasslock_free_stack{private:struc
·
2021-08-11 18:34
golang sync.pool源码分析
无锁队列
实现
何为对象池在开发过程中,代码里头我们经常会创建和销毁同一类对象。而频繁的创建和销毁开销还是很大的,常见的优化手段就是创建对象池。对象池就是提前创建很多对象,使用过的对象不销毁保存起来,等下次请求在重复使用该对象。我们今天分析的主角就是:Go标准库sync.Pool(go1.16.2)。但是sync.Pool中的对象会被GC所清理掉。sync.pool使用funcmain(){count:=0poo
dandyhuang
·
2021-07-27 19:51
高性能SPSC
无锁队列
设计之路
序本文整理了SingleProducer/ConsumerlockfreeQueuestepbystep这篇文章里头关于高性能的SPSC
无锁队列
使用遵循的四个原则:单写原则使用lazySet替代volatileset
go4it
·
2021-06-23 23:09
无锁队列
简介
无锁队列
是lock-free中最基本的数据结构,一般应用场景是资源分配,比如TimerId的分配,WorkerId的分配,上电内存初始块数的申请等等。
_张晓龙_
·
2021-06-15 02:36
RDMA Vs DPDK
将协议栈上移到用户态,利用UIO技术直接将设备数据映射拷贝到用户态2)利用大页技术,降低TLBcachemiss,提高TLB访问命中率3)通过CPU亲和性,绑定网卡和线程到固定的core,减少cpu任务切换4)通过
无锁队列
异客z
·
2021-06-05 02:44
程序员:一个bug我花了4天时间,网友:你这还算好的了
我印象深刻的一个Bug,是一个服务器网络框架
无锁队列
的Bug。那个Bug连续查找了五天的时间,才最后定位出来。
某某呆
·
2021-03-11 19:41
原理剖析(第 012 篇)Netty之
无锁队列
MpscUnboundedArrayQueue原理分析
原理剖析(第012篇)Netty之
无锁队列
MpscUnboundedArrayQueue原理分析一、大致介绍1、了解过netty原理的童鞋,其实应该知道工作线程组的每个子线程都维护了一个任务队列;2、细心的童鞋会发现
HMILYYLIMH
·
2021-03-10 12:24
东问西问,终于揭开腾讯面试的真面目!(一、二、三面)
1.自我介绍2.项目结构、遇到哪里难题、如何解决3.有没有了解过nginx,如何将监听到的连接分配到其他线程4.linux内核是否支持多进程或多线程accept()同一个listenfd6.有没有想过
无锁队列
的实现
Java_Yhua
·
2020-12-03 21:01
java
面试
腾讯
高性能
无锁队列
,代码注释
性能非常强大,和Disruptor的
无锁队列
一样,达到1400w/s。
weixin_30408675
·
2020-09-16 07:48
runtime
高性能
无锁队列
Disruptor 初体验
原文地址:haifeiWu和他朋友们的博客博客地址:www.hchstudio.cn欢迎转载,转载请注明作者及出处,谢谢!最近一直在研究队列的一些问题,今天楼主要分享一个高性能的队列Disruptor。whatDisruptor?它是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。基于Disruptor开发的系统单线程能支撑每秒600万订单。目前,包括Apache
XYC3939
·
2020-09-16 06:21
大数据
netty
数据结构与算法
Netty技术细节源码分析-MpscLinkedQueue队列原理分析
MpscLinkedQueue是Netty所实现的一个基于多生产者单消费者的
无锁队列
,针对NioEventLoop中任务队列的特点,其单消费者的场景在一开始就避免
tydhot
·
2020-09-16 00:54
netty
DPDK 数据包捕获基本流程(十二)
librte_ring:提供
无锁队列
,它使用了rte_eal管理的内存。librte_mempool:利用rte_eal管理的内存和rte_ring提供内存池的功能。
bob62856
·
2020-09-13 16:01
系统
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他