
C++并发实战编程(C++11)
文章平均质量分 81
早起的虫儿灬
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程管理基础
线程的启动 线程在以初始函数(新线程的入口)构造std::thread对象时启动 (注意:以无参构造函数构造的std::thread对象并不启动线程) 构造std::thread对象的三种方式 使用普通函数构造 void do_some_work(); std::thread my_thread(do_some_work); 使用函数对象构造 class backgro原创 2017-06-15 01:13:20 · 480 阅读 · 0 评论 -
保护共享数据
在多线程环境中,读取操作(不管几个线程同时进行)共享数据不会影响到数据的,但是有一个线程或多个线程意图修改数据是,就需要一些机制来保证所有线程都正常工作。 C++中的互斥量 C++标准库中提供了std::mutex来创建互斥量,调用其成员函数lock()可以对互斥量上锁,调用成员函数unlock()进行解锁。但是手动调用这两个成员函数会很麻烦,必须记住每次跳出执行流的时候调用unlock原创 2017-06-22 20:46:10 · 576 阅读 · 0 评论 -
同步并发操作
条件变量 有时候线程之间是需要同步的,为了使线程同步,我们的方法有 1、设置一个共享标志,一个线程持续检查共享标志,一个线程更新标志,使用一个锁来保护这个标志 2、在方法一的基础上使用std::this_thread::sleep_for()让出CPU时间片,以降低不必要的时间损耗 #include //std::this_thread::sleep_for #include //s原创 2017-07-03 23:56:32 · 590 阅读 · 0 评论 -
C++11并发开篇
并发的概念: 两个或更多独立的活动同时发生 假并发与真并发: 1、任务切换(任务调度): 此种方式发生在只有单核心单处理器的老式计算机上。依赖处理器较高的速度不停的在各种任务间切换,以实现”并发”(并不是真正意义上的并发,在任意时刻仅在执行一个任务) 2、硬件并发: 此种方式发生在拥有多处理器或多核处理器的计算机上。依靠硬件的支持,能够实现正真意义上的同时执行多个任务原创 2017-06-14 01:44:26 · 315 阅读 · 0 评论 -
C++并发编程实战第6章问题
C++并发编程实战第6章,代码清单6.4队列实现——单线程版template<typename T> class queue { private: struct node { T data; std::unique_ptr<node> next; node(T data_): data(std::move(data_)) {...原创 2018-04-07 20:12:28 · 451 阅读 · 0 评论