![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
下一页盛夏花开
每天都在学习,每天都是新手
展开
-
WaitForSingleObject()
原文来自:https://blog.csdn.net/zhanghuaichao/article/details/53444582在多线程下面,有时候我们会希望等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleObjects。这两个函数都会等待Object被标为有信号(signaled...转载 2018-08-03 17:31:56 · 2515 阅读 · 0 评论 -
C++11中的原子操作(atomic operation)
所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯一的线程对这个资源进行访问。这有点类似互斥对象对共享资源的访问的保护,但是原子操作更加接近底层,因而效率更高。在以往的C++标准中并没有对原子操作进行规定,我们往往是使用汇编语言,或者是借助第三方的线程...转载 2018-08-10 10:02:09 · 790 阅读 · 0 评论 -
线程的生命周期
原文地址:https://www.cnblogs.com/keessi/p/7444263.html当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态。尤其是当线程启动以后,它不能一直“霸占”着CPU独自运行,所以CPU...转载 2018-08-06 11:34:40 · 107 阅读 · 0 评论 -
线程中CreateEvent、SetEvent、WaitForSingleObject的用法
原文地址:https://www.cnblogs.com/MrYuan/p/5238749.html首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面.CreateEvent函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种...转载 2018-08-10 15:01:47 · 376 阅读 · 0 评论 -
C++11并发编程-条件变量(condition_variable)详解
总结的很详细,打算记录下来。原文地址:https://www.2cto.com/kf/201506/411327.html头文件主要包含了与条件变量相关的类和函数。相关的类包括 std::condition_variable和 std::condition_variable_any,还有枚举类型std::cv_status。另外还包括函数 std::notify_all_at_thread...转载 2018-08-16 17:28:16 · 88954 阅读 · 2 评论 -
C++中的pair,make_pair学习
原文地址:https://blog.csdn.net/bingqingsuimeng/article/details/73480190std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pair<int,float>或者std::pair<double,double>等。pair实质上是一个结构体,其主要的两个成员变...转载 2018-08-17 09:56:49 · 548 阅读 · 0 评论 -
boost锁使用总结
原文地址:https://www.2cto.com/kf/201605/510712.htmlboost锁的概述:boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。举个通俗的例子,如果共享资源是一个自动锁住的房间,互斥体是钥匙,进入房间必须取钥匙,离开房间应该还钥匙。这就对应着互斥体的lock(取钥匙)和unlock(还钥匙)。动态分配内存存在类似...转载 2018-08-27 14:56:25 · 2351 阅读 · 0 评论 -
C++之阻塞和非阻塞区别
原文地址:https://blog.csdn.net/u014252478/article/details/80715341阻塞就是干不完不准回来, 非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓...转载 2018-10-22 17:15:37 · 358 阅读 · 1 评论 -
c++ 中的锁
原文地址:https://blog.csdn.net/susubuhui/article/details/80476238这个是在中兴面试中被面试问到的一个题“你知道线程中的自旋锁么?”,我当时一脸懵逼,不知道。回来后整理下,在这里对线程中的锁进行一个学习。线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能越强大,性能就会越低。1、互斥锁互斥锁用于控制多个线...转载 2018-10-26 17:52:47 · 319 阅读 · 0 评论