- 博客(5)
- 收藏
- 关注
原创 C++ volatile关键字
如果你正在写一个多线程的程序,并且你希望在多个线程之间共享某个变量,你可能会使用锁或其他同步机制来确保一次只有一个线程可以修改该变量。但是,即使在这种情况下,你也可能不希望编译器对变量进行优化,从而每次都从寄存器中读取该变量,因为如果变量在另一个线程中被改变,寄存器中的值可能不会反映出这种改变。在某些情况下,编译器可能会对代码进行优化,将一个变量缓存到寄存器中,然后再从寄存器中读取,这可能会导致一些不可预见的问题。的值时,编译器都会确保从内存中读取,而不是从寄存器中读取,这样可以保证你总是读取到最新的值。
2025-01-14 14:29:12
266
原创 C++ ostream_iterator类
其中,Type是要输出的数据类型,CharType是输出流的字符类型(默认为char),Traits是字符类型相关的特性(默认为)。其中,os是输出流对象,delimiter是元素之间的分隔符,默认为空格。char_type:表示的字符类型。:表示的流类型。:表示字符类型相关的特性。
2025-01-07 13:43:49
177
原创 C++ __cxa_demangle函数作用
中的一个函数,主要用于将C++的符号名(mangled name)转换为可读的形式。在C++编译过程中,编译器会对函数、类、变量等标识符进行名称修饰(name mangling),以支持函数重载、命名空间等特性。这个过程生成的符号名是一串由特殊字符组成的字符串,不易阅读和理解。可以将这些符号名解析为可读的形式,方便开发人员进行调试和分析。函数尝试将其转换回原始的名称,并输出。: 转换状态,0 表示成功,非0 表示失败。: 需要被转换的 mangle 过的名称。是一个 mangle 过的名称,
2024-12-03 00:30:15
671
原创 C++ __builtin_expect 分支预测优化
为了方便使用,通常会将封装成likely和unlikely!(x), 1)!(x), 0)这样,在代码中可以使用likely(x)和来分别表示某个条件很可能会发生和不太可能发生。
2024-12-02 01:00:17
856
原创 MySQL的插入意向锁
插入意向锁(insert intention lock)——在一个事务中执行insert操作不会产生锁,但是当插入发生等待时就会产生插入意向锁。
2022-06-18 17:03:14
2525
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人