现代c++并发编程2-mutex
线程安全相关的同步原语,主要解决表达式冲突问题,即多个线程同时访问共享数据,导致数据不一致的问题。 注意有三种情况是例外的 同线程处理 atomic操作 memory barrier下的内存序已经能确认的操作 1. mutex mutex是一种用来保护临界区的同步原语,其相当于实现了一个公共的“标志位”。它可以处于锁定(locked)状态,也可以处于解锁(unlock...
线程安全相关的同步原语,主要解决表达式冲突问题,即多个线程同时访问共享数据,导致数据不一致的问题。 注意有三种情况是例外的 同线程处理 atomic操作 memory barrier下的内存序已经能确认的操作 1. mutex mutex是一种用来保护临界区的同步原语,其相当于实现了一个公共的“标志位”。它可以处于锁定(locked)状态,也可以处于解锁(unlock...
stringstream的几种用法 1. 字符串转数字 #include <iostream> #include <sstream> int main() { std::string str = "123"; int num; std::stringstream ss; ss << str; ss >> num; ...
c++11的可变参函数模板 1. 可变参函数模板 template<typename... T> void Print(T... args) { // ... } 在typename后面带上...表示这是一个可变参模板函数,可以接受任意数量的参数。 2. 展开方式 展开方式其实在11,17乃至之后都有不同的一些用法。 2.1 递归展开 template<...
c++ quick bench static void XorAligned(benchmark::State &state) { std::vector<char> v{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}; std::vector<char> tar(300, 1); ...
Netlink 是一种进程间通信(IPC)机制,主要用于内核和用户空间进程之间的通信,特别是在网络子系统中, 可以用来获取和设置内核信息,包括网络路由表、接口信息等。 如果为了看代码怎么动态获取网络接口的变更,可以参考下面的代码。 #include <arpa/inet.h> #include <cstring> #include <iostream>...
More on harmful overuse of std::move 看不懂 c++17引入的函数介绍 std::launder const不可更改,但我可以洗清内存 The Return of the Frame Pointers 分代GC浅析 剖析std:...
arm下因为内存不对齐导致的SIGBUS问题 Revision: '0' ABI: 'arm' Happend: 'Sat May 25 02:07:23 2024' SYSVMTYPE: Art APPVMTYPE: Art pid: 13178, tid: 13198, name: roidJUnitRunner signal 7 (SIGBUS), code 1 (BUS_ADRAL...
聊一下怎么用ssl的接口做对称加密 + 解密。 1. AES 看一段demo 简单的说几个参数 IV: Initialization Vector, 一般是加密过程初始化产生的随机向量。加密和解密过程需要同一组IV key, 密钥,加解密共一个,一般是随机生成的,如果不是协商出来 + 随机的话,基本不安全 aad, Additional Authenticated Da...
1. string sso 2. 手把手asan 3. template多参数怎么拿具体idx 4. 注入模版类名怎么写? 5. 高速缓存与一致性 6 简单看几个c++的STL用法 简单看几个c++里STL很有用的地方,然后需要注意的地方 6.1 批量删除 第一个脑回路想到的可能是正向遍历,然后删除。 这样的缺点是会造成后续元素的往前移动,导致时间复杂度为O(n^2)。 ...
c++中存在的各类初始化 总结一下c++中存在的各类初始化问题, 傻逼c++居然有8种初始化的方式。 Default-initialization: zero-initialization Zero-initialization: value-initialization, non-local initialization, constant-initialization ...