C++11中引入了mutex和方便优雅的lock_guard,但是有时候我们想要一个性能更高的实现方式,本文主要讲解如何使用C++11中的原子操作类atomic来巧妙地实现无锁同步。
标签归档:c
发表评论
C++ lock_guard和unique_lock的区别
C++多线程编程需要对共享的数据进行写保护,以防止多线程在对共享数据成员进行并发写时造成资源争抢而导致出现崩溃或其他不符合预期的结果。通常的做法是在修改共享数据成员前先对互斥锁mutex进行lock加锁,在修改后再进行unlock操作,这个场景中经常会出现由于疏忽或异常导致lock之后未能unlock,最终导致死锁。
C++智能指针(unique_ptr 、shared_ptr、weak_ptr、auto_ptr)
一、概述
智能指针:智能指针是一个类,用来存储指针(指向动态分配对象也就是堆中对象的的指针)。
C++的指针*与引用&
简单理解下:
C++内存管理
Cmake—-编写CMakeLists.txt文件编译C/C++程序
1.CMake编译原理
多线程std::cout乱序问题解决方法
问题描述
在C++多线程编程中,开发者往往使用cout来打印一些信息,但是往往被人忽略的是,cout在使用时可能会存在线程之间的打印信息乱串的问题,这个问题的原因是”<<“这个操作符是线程不安全的,会造成竞争问题,当采用多个<<拼接时,打印可能在<<时中断,例如下边的写法:
python调用c编写的.so
1.编写一个简单的c .so
小猪教你开发php扩展
如何使用gdb分析c++ core
一、概述
使用c++开发程序时,经常会遇到运行中core的情况,如果是偶发的就更加难以定位,本文讲解如何使用gdb进行core位置的分析定位。