【缠论推导过程的理解】 缠师的一切理论都是从他的“走势终完美”这句话里引申出来的,之所以缠师把这作为他理论的第一条定理,因为这是他所有理论的基础。后面所有的缠论定理就围绕这第...
C++标准库
C++11多线程-目录VSCode下环境搭建相关: mac在vscode下搭建C/C++环境 https://www.jianshu.com/p/050fa455bc74 vscode下c++代码...
@JUE_ab87 最好不要把promise当做多线程队列用
C++11多线程-异步运行(1)之std::promise前面介绍了C++11的std::thread、std::mutex以及std::condition_variable,并实现了一个多线程通信的chan类,虽然由于篇幅的限制,...
@JUE_ab87 promise可以理解为函数一次跨线程执行的上下文,当需要多个线程时,就需要多个promise
C++11多线程-异步运行(1)之std::promise前面介绍了C++11的std::thread、std::mutex以及std::condition_variable,并实现了一个多线程通信的chan类,虽然由于篇幅的限制,...
多谢
C++11多线程-mutex(2)C++11在提供了常规mutex的基础上,还提供了一些易用性的类,本节我们将一起看一下这些类。 1. lock_guard lock_guard利用了C++ RAII的特性,...
unique_lock头文件注释中,noexcept是不抛出异常,
// 禁止move语义
unique_lock(unique_lock&& u) noexcept;
unique_lock& operator=(unique_lock&& u) noexcept;
以上注释有误,unique_lock 支持移动赋值,但是普通的赋值被禁用了
前面我们介绍了函数模板。今天我们来看看C++的另一种泛型:类模板。C++中类模板通常是容器(如std::vector)或行为的封装(如之前我们实现的chan<T>类)。类模板...
一、为什么要有函数模板 在泛型编程出现前,我们要实现一个swap函数得这样写: 但这个函数只支持int型的变量交换,如果我们要做float, long, double, st...
OmniPlan 3 是Mac上最优秀的项目流程管理工具,由OmniGroup出品,今天和大家分享最新的3.6.4版本,增加了中文的支持,可以帮助我们创建合乎逻辑的项目计划管...
我们在前面讲atomic时,每一个原子操作都有一个std::memory_order参数。这个参数就是C++11的内存模型,用于确定该原子操作以什么样的方式进行读取。在ato...
(由于简书目前不支持[toc]无法快速生成目录,所以可能看起来会有点长。)这篇文章的参考处:https://stackoverflow.com/questions/41781...
上一篇我们介绍了原子操作中最简单的std::atomic_flag,今天我们看一下std::atomic<T>类。 2. std::atomic<T> std::atomic...
前面我们讲了C++11下的多线程及相关操作,这些操作在绝大多数情况下应该够用了。但在某些极端场合,如需要高性能的情况下,我们还需要一些更高效的同步手段。本节介绍的原子操作是一...
前面两章多次使用到std::future,本章我们就来揭开std::future庐山真面目。最后我们会引出std::async,该函数使得我们的并发调用变得简单,优雅。 3....
上一篇介绍的std::promise通过set_value可以使得与之关联的std::future获取数据。本篇介绍的std::packaged_task则更为强大,它允许传...