C++
再谈C++原子操作与内存屏障
两年前我写过一篇浅析C++ Atomic,那时我才刚开始接触原子操作不久。直到前不久在群聊里见到群友们又聊起原子操作与同步问题,我又意识到我对这方面的知识也处于一知半解的水平,于是才又下定决心重新研究了一遍,本文是我重新梳理相关知识的总结。
使用C++20协程和io_uring优雅地实现异步IO
距离2020年已经过去很久了,各大编译器对于C++20各项标准的支持也日趋完善,无栈协程也是其中之一,所以我就尝试着拿协程与io_uring实现了一下proactor模式,这篇文章用来记录一下我的设计和想法。
C++的异常处理究竟有多慢?
我们能在各处看到“C++的异常很慢,不要用”这样的言论,不过很少有人告诉你,C++的异常到底有多慢,以及它为什么这么慢。本文会详细介绍C++在抛出以及捕获异常时,代码到底做了什么,以及我们使用C++异常到底付出了多少代价。
浅析C++ Atomic
早在C++11就在STL中引入了原子操作支持了。大部分时候,我使用C++11的atomic仅仅是为了原子地操作特定的一个变量,比如load、fetch_add等等,然而原子操作的memory order还能起到memory barrier的作用。本文会从头介绍C++11原子变量的用法,注意事项以及一些原理。