
多线程
文章平均质量分 74
stone-jin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windows下CriticalSection和Mutex的性能比较
原文地址:http://blog.csdn.net/dreamfreelancer/article/details/4237272Windows下100万次加/解锁测试:CriticalSection用时:31msMutex用时:953ms结论:CriticalSection性能远远高于Mutex(高出约30倍)。因此,在能用CriticalSection时绝不用M转载 2016-01-19 13:17:14 · 1510 阅读 · 0 评论 -
秒杀多线程第十篇 生产者消费者问题
原文地址:http://blog.csdn.net/morewindows/article/details/7577591继经典线程同步问题之后,我们来看看生产者消费者问题及读者写者问题。生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的转载 2016-01-06 21:34:19 · 373 阅读 · 0 评论 -
秒杀多线程第十一篇 读者写者问题
与上一篇《秒杀多线程第十篇 生产者消费者问题》的生产者消费者问题一样,读者写者也是一个非常著名的同步问题。读者写者问题描述非常简单,有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者在读文件时写者也不去能写文件。上面是读者写者问题示意图,类似于生产者消费者问题的分析过程,首先来找找哪些是属于“等待”情况。第一.写者要等到没有读者时才能去写文件。转载 2016-01-06 22:17:40 · 346 阅读 · 0 评论 -
秒杀多线程第十二篇 多线程同步内功心法——PV操作上
当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,这个信号量的值仅能由PV操作来改变。PV操作由P操作原语和V操作原语组成(原语也叫原子操作Atomic Operation,是不可中断的过程),对信号量(注意不要和Windows中的信号量机制相混淆)进行操作,具体定义如下:P(S):①将信号量S的值减1,即S=S-1;②如果S>=0,则该进程继续执行;否则该进程置为转载 2016-01-06 22:21:32 · 320 阅读 · 0 评论 -
秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock
原文地址:http://blog.csdn.net/morewindows/article/details/7650574在《秒杀多线程第十一篇读者写者问题》文章中我们使用事件和一个记录读者个数的变量来解决读者写者问题。问题虽然得到了解决,但代码有点复杂。本篇将介绍一种新方法——读写锁SRWLock来解决这一问题。读写锁在对资源进行保护的同时,还能区分想要读取资源值的线程(读取者线程)和想要更转载 2016-01-06 22:23:49 · 309 阅读 · 0 评论 -
秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题
原文地址:http://blog.csdn.net/morewindows/article/details/7823572秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题在《秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量》中对经典多线程同步互斥问题进行了回顾和总结,这篇文章对Windows系统下常用的线程同步互斥机制——关键段、事件、互斥量、信号量进转载 2016-01-06 22:27:53 · 329 阅读 · 0 评论 -
秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据
原文地址:http://blog.csdn.net/morewindows/article/details/7823572本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5136035转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/86转载 2016-01-06 22:33:15 · 1385 阅读 · 0 评论 -
windows下多线程同步及互斥代码,并且加入了守卫(自动锁)
#include #include #include #include using namespace std;int num = 0;class CLock{public: CLock() { ::InitializeCriticalSection(&fMutex); } ~CLock() {转载 2016-01-07 01:13:48 · 307 阅读 · 0 评论 -
多线程的时候遇到的EVENT的问题
当线程同步的线程数量超过64个的时候,出现WaitForMultipleObjectsEx函数等待的时候无效。该问题怀疑是内核态有这个数量限制#include using namespace std;#include #include #include #include #include #include RTL_CRITICAL_SECTION转载 2016-01-07 21:21:37 · 382 阅读 · 0 评论 -
秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量
原文地址:http://blog.csdn.net/morewindows/article/details/7538247前面《秒杀多线程第四篇一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,这个问题包括了主线程与子线程的同步,子线程间的互斥,是一道非常经典的多线程同步互斥问题范例,后面分别用了四篇《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同转载 2016-01-06 21:17:44 · 323 阅读 · 0 评论 -
秒杀多线程第八篇 经典线程同步 信号量Semaphore
原文地址:http://blog.csdn.net/morewindows/article/details/7481609阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》 前面介绍了关键段CS、事件E转载 2016-01-06 21:13:26 · 257 阅读 · 0 评论 -
秒杀多线程第七篇 经典线程同步 互斥量Mutex
原文地址:http://blog.csdn.net/morewindows/article/details/7470936阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》 前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量转载 2016-01-06 21:09:26 · 480 阅读 · 0 评论 -
秒杀多线程第一篇 多线程笔试面试题汇总
系列前言本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其他IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同步互斥的各种招式,而且会进一步讲解多线程同步互斥的”内功心法“。有了招式和内功心法,相信你也能对多线程挥洒自如,在笔试面试中顺利秒杀多线程试题。第一篇 多线程笔试面试题汇总多线程在笔试面试中经常出现,下面列出转载 2016-01-04 22:48:14 · 313 阅读 · 0 评论 -
pthread_mutex的使用
linux下为了多线程同步,通常用到锁的概念。 posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。 它主要用如下5个函数进行操作。 1:pthread_mutex_init(pthread_mutex_t原创 2016-01-05 22:52:35 · 2621 阅读 · 4 评论 -
linux下的读写锁pthread_mutex使用方法
pthread_rwlock_t m_lock;初始化:pthread_rwlock_init(&m_lock, NULL);销毁:pthread_rwlock_destroy(&m_lock);读锁:pthread_rwlock_rdlock(&m_lock);写锁:pthread_rwlock_wrlock(&m_lock);释放锁:pt原创 2016-01-05 23:10:25 · 721 阅读 · 0 评论 -
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
原文:http://blog.csdn.net/morewindows/article/details/7421759本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用Create转载 2016-01-06 01:18:08 · 480 阅读 · 0 评论 -
秒杀多线程第三篇 原子操作 Interlocked系列函数
原文地址:http://blog.csdn.net/morewindows/article/details/7429155上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似于统计一个网站每天有多少用户登录,每个用户登录转载 2016-01-06 01:24:39 · 290 阅读 · 0 评论 -
秒杀多线程第四篇 一个经典的多线程同步问题
原文地址:http://blog.csdn.net/morewindows/article/details/7442333上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,现在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。转载 2016-01-06 09:30:10 · 366 阅读 · 0 评论 -
秒杀多线程第五篇 经典线程同步 关键段CS
原文地址:http://blog.csdn.net/morewindows/article/details/7442639上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。关键段CRITICAL转载 2016-01-06 09:34:08 · 372 阅读 · 0 评论 -
秒杀多线程第六篇 经典线程同步 事件Event
原文地址:http://blog.csdn.net/morewindows/article/details/7445233阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇 一个经典的多线程同步问题》《秒杀多线程第五篇 经典线程同步关键段CS》 上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步转载 2016-01-06 21:02:50 · 340 阅读 · 0 评论 -
WaitForMultipleObjectsEx函数中的第一个参数确实是不能超过64的
DWORD WINAPI WaitForMultipleObjectsEx( _In_ DWORD nCount, _In_ const HANDLE* lpHandles, _In_ BOOL bWaitAll, _In_ DWORD dwMilliseconds, _In_ BOOL bAlertable);等待,直到一个或所有指定原创 2016-01-07 21:24:03 · 1892 阅读 · 0 评论