![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 72
OSevenC
随便写写
展开
-
C++11多线程(四)future<T> 和 async
future< T > 和 async 提供了一种接受线程返回值的方式普通线程只能通过全局变量或者指针、引用来获取线程的返回值其使用方式为:future<T> result = async(para);//如果不使用引用,会在主线程里调用三次构造函数result.get();其中T 为返回参数类型para和构造普通线程的参数类似,不同的是,第一个参数可以选...原创 2019-03-08 17:16:51 · 360 阅读 · 0 评论 -
C++11多线程(一)线程入口、传参、join()和detach()
1)锁住的东西越少,执行效率越高2)只读的数据,不需要互斥;又读又写的数据块,才需要使用互斥量unique_lock只能锁一个互斥量,一个互斥量只能上一个unique_lock只能转移,不能复制。adopt lock前提:互斥量已经加了锁作用:初始化一把锁try to lock前提:互斥量未加锁作用:初始化一把锁,尝试锁,不会阻塞defer lock前提:互斥量未加锁作用:...原创 2019-03-06 15:01:22 · 498 阅读 · 0 评论 -
C++11多线程(二)互斥量mutex、lock_gurad、unique_lock和lock()
1)锁住的东西越少,执行效率越高2)只读的数据,不需要互斥;又读又写的数据块,才需要使用互斥量1,互斥量mutex看下面的例子,类A中有两个函数 inMessage()和outMessage(),我们把它们作为线程的入口函数,开两个子线程。这两个子线程操作共享数据m_Queue。需要一个互斥量 m_Mutex。#include&amp;amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;amp;gt;#i原创 2019-03-06 19:32:49 · 572 阅读 · 0 评论 -
C++单例类最好的写法(支持多线程)
单例类某个类只能有一个对象,即为单例class A{}...A a1;A a2;//这就不是单例,不能有第二个对象下面是一个常用的C++单例类的形式:class S{private: S() {} //私有构造函数,单例类不能通过普通放方式构造对象private: static S* m_Instance; //指向该类唯一的对象的指针public: sta...原创 2019-03-07 15:59:40 · 1584 阅读 · 0 评论 -
C++11多线程(三)condition_variable、wait()、notify_one()
1. call_once()call_once()的第二个参数是一个函数名funcall_once()的功能是可以保证这个函数fun()只会被调用一次call_once()具有互斥量的功能,但消耗的资源更少。call_once()需要与标记std::once_flag结合使用。std::once_flag mFlag;call_once(mFlag, CreateInstance);...原创 2019-03-07 17:46:14 · 683 阅读 · 0 评论