C++线程
yfei003
多努力一点,你会更好
展开
-
C++ 线程学习四(原子操作)
1、原子操作:std::atomic原理概念: 【1】原子操作可以理解为,不需要用到互斥量加锁(无锁)技术的d的多线程并发编程方式 也可以理解成,原子操作在多线程中不会被打断的程序执行片段; 【2】原子操作比互斥量在效率上更高; 【3】互斥量的加锁一般是针对一个代码段(几行代码),原子操作针对的都是一个变量,而不是针对一个代码段;...原创 2019-10-20 13:25:42 · 385 阅读 · 0 评论 -
C++线程学习七(异步)
1、async和future的使用(1)std::async std::future创建后台任务并返回【1】std::async std::async是一个函数模板,用来启动一个异步任务,启动起来就是一个已步入任务后,返回一个std::future 对象,std::future是一个类模板 “启动一个异步任务”,就是创建一个线程并执行对应线程的入口...原创 2019-10-20 16:34:07 · 335 阅读 · 0 评论 -
C++线程学习二(future成员函数)
1、future成员函数介绍与使用示例示例一:future的成员函数与基本使用Member()函数后面会有定义与声明,目前只是介绍future的使用cout << "main thread ID " << this_thread::get_id() << endl;std::future<int> res = std::asyn...原创 2019-10-20 13:43:05 · 532 阅读 · 0 评论 -
C++线程学习二(其他线程锁)
1、其他线程锁及其使用 临界区:Critical_Region 在同一个线程中,windows的 "相同临界区变量" 代表的临界区的进入可以被多次调用,几次调用就需要几次释放 recursive_mutex递归独占互斥量 std::lock_guard<std::recursive_mutex> std::time_mutex:...原创 2019-10-20 13:57:32 · 164 阅读 · 0 评论 -
C++线程学习三(condition_variable的使用)
1、条件变量 condition_variable条件变量:std::condition_variable wait() notify_one()std::condition_variable 是一个类,需要等待一个条件达成。这个类需要和互斥量配合工作,用的时候需要生成这个类的对象;只能唤醒一个线程wait用于等待如果第二个参数表达式是false,那么wait()将解锁互...原创 2019-10-20 13:10:40 · 346 阅读 · 0 评论 -
C++线程学习一(线程介绍)
1、线程学习说明 本文主要记录了线程学习的笔记,主要以示例的形式讲解每个接口的使用以及优缺点。线程的理论知识还没有系统的整理,所以后面以具体代码为主,会在每个代码段介绍对应使用的函数。 文章主要是自己学习线程后,对线程学习笔记的整理。2、线程与线程锁 在使用线程的过程中,如果存在数据的读写,不可避免的要使用到线程锁。使用线程锁的目的...原创 2019-10-19 13:18:18 · 245 阅读 · 0 评论 -
C++线程学习二(互斥量中其他类模板的使用)
1、unique_lock介绍 (1)unique_lock是个类模板,它比lock_guard灵活很多,但是效率会低一些,占用内存较多;一般推荐使用lock_guard(lock_guard取代了mutex中的lock()和unlock());2、unique_lock<std::mutex> 使用的灵活性2.1unique_lock与lock_g...原创 2019-10-20 10:48:27 · 158 阅读 · 0 评论