摘要:
cpp #include<thread> #include<mutex> #include<vector> #include<condition_variable> #include<boost/circular_buffer.hpp> #include<functional> #include<a 阅读全文
摘要:
无界队列 #include<queue> #include<mutex> #include<condition_variable> #include<optional> #include<cassert> #include<thread> template<typename T,typename C 阅读全文
摘要:
共享指针 管理指针的存储,提供有限的垃圾回收工具,并可能与其他对象共享该管理。 shared_ptr类型的对象都能够获得指针的所有权并共享该所有权:一旦它们获得所有权,当最后一个所有者释放该所有权时,指针的所有者组就负责删除该所有者。 shared_ptr对象在自身被销毁后,或者一旦其值因赋值操作或 阅读全文
摘要:
唯一指针 管理指针的存储,提供有限的垃圾回收工具,与内置指针相比几乎没有开销(取决于所使用的删除程序)。 这些对象具有获取指针所有权的能力:一旦它们获得所有权,它们就会通过在某个时候负责删除指向的对象来管理指向的对象。 unique_ptr对象在它们本身被销毁时,或者一旦它们的值通过赋值操作或显式调 阅读全文
摘要:
向量 向量是序列容器,表示可以更改大小的数组。 就像数组一样,向量对其元素使用连续的存储位置,这意味着也可以使用指向其元素的常规指针上的偏移量来访问其元素,并且与数组一样高效。但与数组不同的是,它们的大小可以动态变化,它们的存储由容器自动处理。 在内部,向量使用动态分配的数组来存储其元素。可能需要重 阅读全文
摘要:
atomic 每个 std::atomic 模板的实例化和全特化定义一个原子类型。若一个线程写入原子对象,同时另一线程从它读取,则行为良好定义。 另外,对原子对象的访问可以建立线程间同步,并按 stdmemory_order 所对非原子内存访问定序。 stdatomic 既不可复制亦不可移动。 成员 阅读全文
摘要:
promise 空模板 非 void 特化,用于在线程间交流对象 void 特化,用于交流无状态事件 类模板 stdpromise 提供存储值或异常的设施,之后通过 stdpromise 对象所创建的 stdfuture 对象异步获得结果。注意 stdpromise 只应当使用一次。 每个 prom 阅读全文
摘要:
condition_variable condition_variable 类是同步原语,能用于阻塞一个线程,或同时阻塞多个线程,直至另一线程修改共享变量(条件)并通知 condition_variable 。 有意修改变量的线程必须 获得 stdmutex (常通过 stdlock_guard ) 阅读全文
摘要:
lock_guard 类 lock_guard 是互斥体包装器,为在作用域块期间占有互斥提供便利 RAII 风格机制。 创建 lock_guard 对象时,它试图接收给定互斥的所有权。控制离开创建 lock_guard 对象的作用域时,销毁 lock_guard 并释放互斥。 lock_guard 阅读全文
摘要:
mutex mutex 类是能用于保护共享数据免受从多个线程同时访问的同步原语。 mutex 提供排他性非递归所有权语义: 调用方线程从它成功调用 lock 或 try_lock 开始,到它调用 unlock 为止占有 mutex 。 线程占有 mutex 时,所有其他线程若试图要求 mutex 的 阅读全文