技术栈
原子操作
赖small强
5 天前
linux
·
信号量
·
原子操作
·
自旋锁
·
内核同步方法
·
读-写自旋锁
·
读-写信号量
Linux 内核 8 类同步机制详解(原理、场景与示例)
本文系统性讲解 Linux 4.4 内核的 8 类同步机制:每一节包含:实现原理、工作机制、适用场景、注意事项,以及可运行的核心示例片段(放在文档中,便于理解)。同时插入了对应的流程图帮助快速把握结构。代码基于内核 4.4 API,路径引用以本仓库为准。
Qt程序员
21 天前
c++
·
线程
·
c/c++
·
原子操作
·
无锁编程
基于原子操作的 C++ 高并发跳表实现
在高并发的多线程编程中,传统的锁机制(如 std::mutex)常常成为性能瓶颈。锁竞争会导致线程阻塞、上下文切换开销增加,甚至引发死锁问题。为了解决这一问题,无锁编程(Lock-Free Programming)逐渐成为主流方案。通过 原子操作(Atomic Operations)和 跳表(Skip List)的结合,避免了显式锁的使用,能真正实现多线程并行访问,是解决高并发场景下有序数据结构性能问题的核心方案。
hour_go
1 个月前
c++
·
并发编程
·
互斥锁
·
线程同步
·
原子操作
C++多线程编程入门实战
本文旨在帮助初学者快速理解和跑通C++多线程编程,涵盖从基础概念到实际应用的完整路径。在多核处理器成为主流的今天,多线程编程是提高程序性能的关键技术。它允许程序同时执行多个任务,充分利用硬件资源。
奔跑吧邓邓子
1 个月前
c++
·
实战
·
c++11新特性
·
原子操作
·
异步编程
【C++实战(54)】C++11新特性实战:解锁原子操作与异步编程的奥秘
在 C++11 中,std::atomic是一个模板类,用于封装数据类型并为其提供原子操作 ,这些操作在多线程环境中是安全的,不会被其他线程中断。通过使用std::atomic,开发者可以确保数据在多线程环境中的一致性和正确性。例如,定义一个原子整数类型:
IT老兵2025
3 个月前
linux
·
原子操作
·
内核驱动
·
循环dma
·
任务抢占
I2S接口应用中循环DMA收发不同步导致的随机噪声问题
某个基于I2S接口的语音应用项目中,在系统测试阶段,发现设备在语音通话中会概率性的出现噪声。I2S(Inter-IC Sound)接口是一种用于音频数据传输的串行总线标准,广泛应用于嵌入式系统中的音频处理,以便与音频编解码器(如DAC和ADC)进行高效的数据交换。
许野平
1 年前
开发语言
·
算法
·
rust
·
原子操作
·
atomicbool
Rust:原子操作 AtomicBool
在 Rust 中,你可以使用 std::sync::atomic 模块来进行原子操作。原子操作在多线程环境中特别有用,因为它们可以确保操作的原子性和可见性,从而避免数据竞争和其他并发问题。
嵌入式产品侠
1 年前
原子操作
·
原子变量
·
linux内核同步机制
原子变量原理剖析
原子操作保证指令以原子的方式执行,执行过程不被打断。先看一个实例,如下所示,如果thread_func_a和thread_func_b同时运行,执行完成后,i的值是多少?
Zijian/TENG
2 年前
性能优化
·
多线程
·
并发
·
优化
·
volatile
·
原子操作
·
atomic
·
内存序
·
内存一致性
C++ 中的 volatile 和 atomic
std::atomic 用于多线程并发场景,有两个典型使用场景:volatile 和多线程并发没有任何关系,用于防止编译器优化掉对特殊变量的“冗余”读写操作
linux大本营
2 年前
linux
·
内核
·
c/c++
·
原子操作
·
cpu缓存
从CPU缓存结构到原子操作
因为CPU的计算速度非常快,但内存的访问速度相对较慢。因此,如果CPU每次都要从内存读取数据,会造成大量的等待时间,降低整体性能。
陈建111
2 年前
redis
·
原子操作
·
lua脚本
·
redis 单指令
Redis核心技术与实战【学习笔记】 - 20.Redis原子操作及并发访问
使用 Redis 时,不可避免地会遇到并发访问的问题,比如说如果多个用户同时下单,就会对缓存在 Redis 中的商品库存并发更新。一旦有了并发写操作,数据就会被修改,如果我们没有对并发写请求做好控制,就可能导致数据被改错,影响业务的正常使用(例如,库存数据错误,导致下单异常)。
初级代码游戏
2 年前
c++11
·
互斥锁
·
原子操作
·
写优先
程序设计:C++11原子 写优先的读写锁(源码详解二:操作跟踪)
本文承接程序设计:C++11原子 写优先的读写锁(源码详解)-CSDN博客上文已经列出了完整代码,完整代码里面增加了操作跟踪,这里就讲解一下这部分是如何实现的。
我是有底线的