摘要: std::timed_mutex包含在<mutex>头文件中。 用法和std::mutex类似。 try_lock_for():等待一段时间,如果拿到了锁,或者超时了未拿到锁,就继续执行(有选择执行)如下 1 std::chrono::milliseconds timeout(100); 2 if 阅读全文
posted @ 2020-07-06 13:52 Chen沉尘 阅读(2764) 评论(0) 推荐(0) 编辑
摘要: Windows临界区 Windows临界区,同一个线程是可以重复进入的,但是进入的次数与离开的次数必须相等。C++互斥量则不允许同一个线程重复加锁。windows临界区是在windows编程中的内容,了解一下即可,效果几乎可以等同于c++11的mutex。包含#include <windows.h> 阅读全文
posted @ 2020-07-06 13:43 Chen沉尘 阅读(4136) 评论(0) 推荐(0) 编辑
摘要: 面向的问题 对简单临界资源的访问,如果使用mutex开销较大。 如有两个线程,对一个变量进行操作,一个线程读这个变量的值,一个线程往这个变量中写值。即使是一个简单变量的读取和写入操作,如果不加锁,也有可能会导致读写值混乱(一条语句可能会被拆成3、4条汇编语句来执行,所以仍然有可能混乱) 1 #inc 阅读全文
posted @ 2020-07-06 12:42 Chen沉尘 阅读(1808) 评论(0) 推荐(1) 编辑
摘要: 如图以下是头文件<future>中的类容。 std::future<T> future有两个类模板,一个独占的std::future,也就是只能被获取一次,另一个是共享的std::shared_future。std::future<T>是一个类模板,其中T是要存储的值的类型,std::future 阅读全文
posted @ 2020-07-06 09:51 Chen沉尘 阅读(1591) 评论(0) 推荐(0) 编辑