logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ 内存模型与无锁编程:从底层原理到实战

我们先看一段看起来"完全没问题"的代码:这段代码的意图非常清晰:生产者先写 ,再设 ;消费者等到后读取 。逻辑上,输出应该永远是 42。但实际上,这段代码有三个致命问题:问题一:编译器重排序(Compiler Reordering)编译器为了优化性能,可能会调换和的执行顺序。因为从单线程的视角看,这两条语句之间没有依赖关系,交换顺序不影响单线程的正确性。但对于多线程,顺序至关重要。** 编译器为什

文章图片
#c++#开发语言#linux +1
深入理解 MPSC 无锁队列:从原理到三种实现

位置使用的内存序为什么relaxed新节点还没发布给任何其他线程,单线程可见即可acq_relrelease部分:发布新节点 n 的初始化;acquire部分:拿到 prev 时能看到上游生产者对 prev 的所有 release 写release发布 n 给 consumer —— consumer 用 acquire 加载tail->next就能看到 n 的完整内容acquire与上面的 re

文章图片
#中间件#缓存#分布式 +2
Gtest

Google Test(简称 gtest)是 Google 开源的 C++ 测试框架。它被广泛应用于工业级 C++ 项目中,包括 Chromium、LLVM、OpenCV 等知名项目。所有断言都支持用<<<< "当输入为 n=" << n << " 时结果不符预期";这在循环中调用断言时特别有用,能帮你快速定位是哪次迭代出了问题。死亡测试用于验证程序在特定条件下是否会按预期终止(比如触发asser

文章图片
#c++#linux#服务器 +1
Actor模型:从原理到实战,搞懂无锁高并发

Actor模型的本质是一种架构级别的并发抽象用消息传递取代共享内存,从根本上消除数据竞争用Mailbox实现异步解耦,让系统具备弹性用监督树实现自动容错,让系统具备自愈能力用位置透明实现分布式扩展,让系统具备伸缩性它不是银弹,但在正确的场景下,它能让你的并发代码从噩梦变成工程。

文章图片
#c++#分布式
深入理解分布式系统:从 CAP 定理到 BASE 理论

本文深入剖析分布式系统的核心理论CAP定理与BASE理论。CAP定理指出分布式系统无法同时满足一致性、可用性和分区容错性,必须权衡选择CP或AP系统。BASE理论则提供工程实践方案,通过基本可用、软状态和最终一致性来平衡CAP约束。文章还澄清常见误解,并介绍PACELC模型作为CAP的补充,帮助开发者理解分布式系统的本质与设计原则。

文章图片
#分布式#后端
leetcode--接雨水(双指针法,动态规划,单调栈)

黑色的是柱子,蓝色的是雨水,我们先来观察一下雨水的分布情况:雨水落在凹槽之间,在一个凹槽的左右都会有两个柱子,两个柱子高度可能相同也可能不同,柱子的高低决定了凹槽的雨水的高度,雨水的高度等于两个柱子较低的高度。

文章图片
#leetcode#算法#数据结构 +2
HTML5(1)

网页制作思路:从上到下,先整体再局部,逐步分析制作分析内容->写代码->保存->刷新浏览器->看效果Vue.js(发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,可以高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

文章图片
#html5#前端#html
到底了