条款1:不要把一个原生指针给多个shared_ptr管理 int* ptr = new int; shared_ptr p1(ptr); shared_ptr p2(pt...
条款1:不要把一个原生指针给多个shared_ptr管理 int* ptr = new int; shared_ptr p1(ptr); shared_ptr p2(pt...
一、何为原子操作 原子操作:顾名思义就是不可分割的操作,该操作只存在未开始和已完成两种状态,不存在中间状态; 原子类型:原子库中定义的数据类型,对这些类型的所有操作都是原子的...
前面我们介绍了线程(std::thread)和互斥量(std::mutex),互斥量是多线程间同时访问某一共享变量时,保证变量可被安全访问的手段。在多线程编程中,还有另一种十...
std::lock_guard std::lock_guard是RAII模板类的简单实现,功能简单。 std::unique_lock std::unique_lock为锁管...
C++11多线程互斥锁mutex,unique_lock,lock_guard 互斥锁 互斥锁是线程中常用的线程同步手段, 在C++11后使用互斥互斥锁的方式包括两种pt...
简单介绍一下使用条件变量时,增加互斥锁的必要性。pthread_cond_wait的API如下 条件变量的用法就不具体介绍了,此处我们考虑的问题是增加mutex参数的必要性,...
1. 可调用对象 可调用对象有一下几种定义: 是一个函数指针,参考 C++ 函数指针和函数类型; 是一个具有operator()成员函数的类的对象; 可被转换成函数指针的类对...
1. 本文适用网络仅为“高校校园网”,目前运营商未商用,暂不适用;2. Win 10 ipv6存在问题的根本原因是系统升级后Windows.old 文件导致,删除旧系统文件就...
构建现代的server应用程序须要以某种方法同一时候接收数百、数千甚至数万个事件,不管它们是内部请求还是网络连接,都要有效地处理它们的操作。有很多解决方式,但事件驱动也被广泛...