![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
----------线程、临界区、锁
文章平均质量分 93
寂寂寂寂寂蝶丶
这个作者很懒,什么都没留下…
展开
-
秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock
秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock转载自:https://blog.csdn.net/morewindows/article/details/7650574在《秒杀多线程第十一篇读者写者问题》文章中我们使用事件和一个记录读者个数的变量来解决读者写者问题。问题虽然得到了解决,但代码有点复杂。本篇将介绍一种新方法——读写锁SRWLock来解决这一问题。读写锁在对资源进行保...转载 2018-09-17 17:45:05 · 400 阅读 · 0 评论 -
秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题
秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题转载自:https://blog.csdn.net/morewindows/article/details/7823572在《秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量》中对经典多线程同步互斥问题进行了回顾和总结,这篇文章对Windows系统下常用的线程同步互斥机制——关键段、事件、互斥量、信号量进行了总结...转载 2018-09-17 20:05:00 · 182 阅读 · 0 评论 -
秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据
秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据转载自:https://blog.csdn.net/morewindows/article/details/8646902在《秒杀多线程系列》的前十五篇中介绍多线程的相关概念,多线程同步互斥问题《秒杀多线程第四篇一个经典的多线程同步问题》及解决多线程同步互斥的常用方法——关键段、事件、互斥量、信号量、读写锁。为了让大家更加熟练运...转载 2018-09-17 20:39:22 · 231 阅读 · 0 评论 -
线程的几种状态极其转换
线程的几种状态极其转换线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、初始化状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。进入就绪状态后,当该对象被操作...转载 2018-09-10 20:38:09 · 1979 阅读 · 0 评论 -
秒杀多线程第七篇 经典线程同步 互斥量Mutex
秒杀多线程第七篇 经典线程同步 互斥量Mutex转载自:https://blog.csdn.net/morewindows/article/details/7470936前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不...转载 2018-09-13 10:55:01 · 319 阅读 · 0 评论 -
等待线程WaitForSingleObject、WaitForMultipleObjects
等待线程WaitForSingleObject()、WaitForMultipleObjects()在多线程下面,有时候我们会希望等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleObjects。这两个函数都会等待Object被标为有信号(signaled)时才返回的。那么,什么是信...原创 2018-09-18 17:14:43 · 2689 阅读 · 2 评论 -
GetLastError()函数返回值及含义
GetLastError()函数返回值及含义GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置。函数并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值,也不能担保函数已成功执行。只有在函数调用返回一个错误结果时,这个函数指出的错误结果才是有效的。通常,只有在函数返回一个错误结果,而且已知函数会设置Get...转载 2018-09-18 17:17:57 · 1248 阅读 · 0 评论 -
秒杀多线程第八篇 经典线程同步 信号量Semaphore
秒杀多线程第八篇 经典线程同步 信号量Semaphore转载自:https://blog.csdn.net/morewindows/article/details/7481609前面介绍了关键段CS、事件Event、互斥量Mutex在经典线程同步问题中的使用。本篇介绍用信号量Semaphore来解决这个问题。首先也来看看如何使用信号量,信号量Semaphore常用有三个函数,使用很方便...转载 2018-09-13 15:13:35 · 156 阅读 · 0 评论 -
秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量
秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量转载自:https://blog.csdn.net/morewindows/article/details/7538247前面《秒杀多线程第四篇一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,这个问题包括了主线程与子线程的同步,子线程间的互斥,是一道非常经典的多线程同步互斥问题范例,后面分别用了四篇《秒杀多线...转载 2018-09-13 15:30:26 · 139 阅读 · 0 评论 -
秒杀多线程第十篇 生产者消费者问题
秒杀多线程第十篇 生产者消费者问题转载自:https://blog.csdn.net/morewindows/article/details/7577591继经典线程同步问题之后,我们来看看生产者消费者问题及读者写者问题。生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具...转载 2018-09-14 15:16:21 · 270 阅读 · 0 评论 -
线程安全的单例模式
线程安全的单例模式#include <pthread.h> //Linux中使用线程#if 0单例模式指一个类只允许有一个实例,类型分为懒汉模式和饿汉模式实现方法:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例...转载 2019-03-06 21:40:05 · 83 阅读 · 0 评论 -
秒杀多线程第十二篇 多线程同步内功心法——PV操作上
秒杀多线程第十二篇 多线程同步内功心法——PV操作上转载自:https://blog.csdn.net/morewindows/article/details/7650470阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量M...转载 2018-09-17 16:55:43 · 162 阅读 · 0 评论 -
秒杀多线程第十一篇 读者写者问题
秒杀多线程第十一篇 读者写者问题转载自:https://blog.csdn.net/morewindows/article/details/7596034与上一篇《秒杀多线程第十篇 生产者消费者问题》的生产者消费者问题一样,读者写者也是一个非常著名的同步问题。读者写者问题描述非常简单,有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者在读文件时写者...转载 2018-09-17 16:17:25 · 221 阅读 · 0 评论 -
MemMap内存映射
MemMap内存映射转载自:https://blog.csdn.net/u014630431/article/details/72844501一、内存映射文件是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内...转载 2018-08-20 10:37:05 · 544 阅读 · 0 评论 -
mmap内存映射
mmap内存映射转载自:https://blog.csdn.net/kongdefei5000/article/details/70183119内存映射是个很有用,也很有意思的思想。我们都知道操作系统分为用户态和内核态,用户态是不能直接和物理设备打交道的,如果想把硬盘的一块区域读到用户态,则需要两次拷贝(硬盘->内核->用户),但是内存映射的设计只需要发生一次的拷贝,大大的提高...转载 2018-08-20 10:40:07 · 166 阅读 · 0 评论 -
共享内存之——mmap内存映射
共享内存之——mmap内存映射转载自:https://www.cnblogs.com/gdk-0078/p/5165242.html共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制。共享内存可以通过mmap()映射普通文件 (特殊情况下还可以采用匿名映射)机制实现,也可以通过systemV共享内存机制实现。应用接口和原理很简单,内部机制复...转载 2018-08-20 10:52:50 · 433 阅读 · 0 评论 -
临界区Critical Section以及与锁Mutex的比较
临界区Critical Section一、临界区概念临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被单一线程访问...转载 2018-09-11 14:14:51 · 1527 阅读 · 0 评论 -
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别转载自:https://blog.csdn.net/morewindows/article/details/7421759本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答C...转载 2018-09-11 16:28:32 · 194 阅读 · 0 评论 -
秒杀多线程第三篇 原子操作 Interlocked系列函数
秒杀多线程第三篇 原子操作 Interlocked系列函数转载自:https://blog.csdn.net/morewindows/article/details/7429155上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似...转载 2018-09-11 17:33:12 · 119 阅读 · 0 评论 -
秒杀多线程第一篇 多线程笔试面试题汇总
秒杀多线程第一篇 多线程笔试面试题汇总转载自:https://blog.csdn.net/MoreWindows/article/details/7392749第一篇 多线程笔试面试题汇总多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常出现在面试中的第一轮面试(我参加2011年腾讯研究院实习生招聘时就被问到了几...转载 2018-09-11 17:53:11 · 260 阅读 · 0 评论 -
秒杀多线程第四篇 一个经典的多线程同步问题
秒杀多线程第四篇 一个经典的多线程同步问题转载自:https://blog.csdn.net/morewindows/article/details/7442333上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,现在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也...转载 2018-09-11 20:09:25 · 102 阅读 · 0 评论 -
秒杀多线程第五篇 经典线程同步 关键段(临界区)CS
秒杀多线程第五篇 经典线程同步 关键段(临界区)CS转载自:https://blog.csdn.net/morewindows/article/details/7442639上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实...转载 2018-09-12 11:42:30 · 239 阅读 · 0 评论 -
线程同步常用方式与区别
线程同步常用方式与区别转载自:https://blog.csdn.net/drdairen/article/details/73480570在介绍线程同步/互斥之前,我们先要理解同步与互斥的概念,引用书上的解释来说明这2个概念: 1、线程(进程)同步的主要任务 在引入多线程后,由于线程执行的异步性,会给系统造成混乱,特别是在急用临界资源时,如多个线程急用同一台打印机,会使打印结果...转载 2018-09-12 15:50:59 · 512 阅读 · 0 评论 -
秒杀多线程第六篇 经典线程同步 事件Event
秒杀多线程第六篇 经典线程同步 事件Event转载自:https://blog.csdn.net/morewindows/article/details/7445233上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。首先介绍下如何使用事件。事件Event实际上...转载 2018-09-12 18:21:52 · 377 阅读 · 0 评论 -
进程与线程的区别
其他相关文章:https://blog.csdn.net/wolenski/article/details/7969908https://www.cnblogs.com/yuanchenqi/articles/6755717.html#_label1我们在讨论进程与线程的区别之前,首先我们要清楚进程与线程的概念。什么是进程?进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源...转载 2019-09-23 21:54:27 · 268 阅读 · 0 评论