windows多线程编程
windows多线程编程
poetliu
这个作者很懒,什么都没留下…
展开
-
Windows多线程同步系列之二-----关键区
关键区对象为:CRITICAL_SECTION 当某个线程进入关键区之后,其他线程将阻塞等待,知道该线程释放关键区的拥有权。 关键区同步主要有以下几个API初始化关键区对象,无返回值,传入一个关键区对象的指针。 该函数在使用完关键区之后删除关键区对象,无返回值,同样传入一个关键区对象指针原创 2016-04-07 21:02:02 · 673 阅读 · 0 评论 -
Windows多线程同步系列之三-----事件对象
事件是一个内核事件,内核事件是什么呢,我理解也不深入也不好说,暂且理解为一个内核维护的数据类型吧通过内核事件同步主要的方法是对事件的信号有和无来进行同步。 比如当我们一个线程进入一段临界代码(独占代码段,不可多个线程同时访问)那么这时候我们将事件对象设置为无信号状态。那么另外一个线程便会在等待这样一个事件对象,直到该事件对象执行完临界代码,然后将事件对象设为有信号状态,此时便可以该原创 2016-04-08 12:30:30 · 614 阅读 · 0 评论 -
Windows多线程同步系列之四-----信号量
信号量说实话自己没怎么使用过。书上大概这样说,信号量设置一个资源访问计数。当该计数值大于0的时候,该信号量对象为有信号状态,当该计数值等于0的时候,该信号量对象为无信号状态。 我们来查几个主要的API用于前面的卖票问题,信号量同步中主要函数包括以下几个: 该函数用于创建一个信号量句柄,返回值即为该信号量句柄。第一个参数为安全属性,默认安全属性为NUL原创 2016-04-08 12:33:06 · 622 阅读 · 0 评论 -
windows多线程同步总结
1.多线程同步与多线程互斥的关系其实这也是我一直困扰的问题,在这里我只是说说我的理解。我的理解是多线程互斥是针对于多线程资源而言的。而多线程同步是针对于多线程时序问题。由于线程的并发性导致其运行时间的不确定性,所以我们需要控制多个线程的协同工作。 还是举卖票的例子来区别互斥和同步的区别吧:比如我们有两个窗口进行卖票,当然这里就需要一个全局变量来计数当原创 2016-04-08 12:34:23 · 597 阅读 · 0 评论 -
Windows多线程同步系列之一-----互斥对象
多线程同步之互斥对象作者:vpoetmail:vpoet_sir@163.com 对卖票问题进行线程间同步,本文将在上文的基础上,使用互斥对象对线程进行同步。首先看看windows API该函数创建一个命名或者不命名的互斥对象lpMut原创 2016-04-10 13:26:05 · 1306 阅读 · 0 评论 -
CreateThread线程函数
之前在一篇基于TCP套接字实现的简单Demo 一文中用到了线程函数CreateThread()函数来创建新的线程.下面以一个最简单的多线程例子来说明.C-代码如下: 1 //最简单的创建多线程实例 2 #include stdio.h> 3 #include windows.h> 4 5 //子线程函数 6 DWORD WIN原创 2016-04-10 13:27:17 · 721 阅读 · 0 评论 -
CreateThread简单那多线程编程
CreateThread简单那多线程编程作者:vpoetmail:vpoet_sir@163.com在进行多任务处理的时候我们往往会用到多线程技术,多线程理论上是多个线程同事处理不同的工作,但是这只针对多核的CPU而言但是对于单核CPU多线程往往实现的方式是:CPU为各个线程分配时间片,让各个线程循环的执行,但是这个时间片又很短,所以给我们只管的映像原创 2016-04-10 13:29:32 · 7409 阅读 · 0 评论 -
windows多线程没那么难
windows多线程没那么难作者:vpoetmail:vpoet_sir@163.com上一博文中我们引入了CreateThread()多线程编程一个简单的例子,事实上我说windows多线程没那么难,那是为了安慰你,但是不要怕,困难时让人克服的。下面我又要介绍一个多线程的问题:我们首先看一个Demo,经典的卖票问题,同一张牌不能卖出去两次:原创 2016-04-10 13:33:06 · 2134 阅读 · 0 评论