C++11多线程
binary str
这个作者很懒,什么都没留下…
展开
-
C++11多线程(5)
C++11多线程原子操作atomic过程浅析一般原子操作总结原子操作我们之前可以通过mutex(互斥量)来给线程加锁,达到我们保护数据和操作的完整性,现在我们还可以用原子操作来保证我们的数据和操作的完整性(当然,mutex锁更好用)。atomicatomic是一个类模板,在atomic头文件中,用来封装某个类型的值。#include <iostream>#include &...原创 2020-03-16 15:10:59 · 171 阅读 · 0 评论 -
C++11多线程(4)
C++11多线程线程返回值异步任务(async)参数跟thread的比较返回值获取实践futurepromise线程返回值在先前的实践中,我们认识到,我们使用thread去获取线程返回值是比较费劲的。C++11中提供了两个模板future和promise来协助我们获取线程返回值。在使用它们的时候应该包含头文件thread。异步任务(async)异步是什么?“异步与同步处理相对,异步处...原创 2020-03-16 14:04:56 · 197 阅读 · 0 评论 -
C++11多线程(3)
C++11多线程条件变量条件变量的使用条件变量上一章我们介绍了如何用互斥量给线程加锁,达到保证数据,操作完整性的目的,这一章我们会介绍一个具有类似功能的类模板,条件变量。条件变量std::condition_variable;它一般被用来阻塞一个或同时阻塞多个线程,直到另一个线程去通知它,它才放弃阻塞。它一般会和互斥量一起使用。条件变量的使用#include <iostream&...原创 2020-03-15 12:02:28 · 163 阅读 · 0 评论 -
c++11多线程(2)
C++11多线程互斥量互斥量的使用互斥量通过上一篇文章,我们已经知道了怎么创建一个线程。现在我们要解决一个问题,要是我们创建了两个线程,它们都操作同一个对象,它会导致两个线程同时对这个对象进行修改,我们希望我们在运行其中一个线程的时候,另一个线程被阻塞住,等到这个线程执行完,再让另一个线程再来执行,循环往复。这就要用到一个东西:互斥量。互斥量是一个类对象,可以理解成一把进程锁,多个线程尝试使...原创 2020-03-14 12:41:43 · 178 阅读 · 0 评论 -
c++11多线程(1)
# C++11多线程C++11对多线程的支持进程和线程创建一个线程函数浅析注意C++11对多线程的支持c++11中新支持了thread这个库,常见的创建线程、join()、detach()都能支持。所以我们能写出跨平台的多线程程序了。进程和线程在我们运行一个程序的时候,像我们写的一个cpp控制台程序运行起来,它就是一个进程。计算机运行可以有多个进程,进程里面也可以有多个线程,我们最熟悉的一...原创 2020-03-13 13:50:43 · 300 阅读 · 0 评论