多线程
zxl0726
一个时刻准备冲天一飞的人
展开
-
线程同步的一些常见模式(1)
本篇文章说明了一种多线程编程中常见的模式,该模式主要描述如下:1.有一所幼儿园,有若干个老师和很多的孩子,有一个迷宫给孩子们玩2.老师可以布置迷宫。3.当某个老师在布置迷宫的时候,为了安全,孩子们不可以在迷宫里4.不能让一个以上的老师同时布置迷宫,免得把迷宫弄乱5.在没有老师布置迷宫的时候,孩子们可以自由进出迷宫,在里面玩6.当某个老师想进入迷宫的时候,他必须挂一块牌子,表示老师要清理迷宫,不让孩子们再进来(但是已经在迷宫里的孩子可以继续玩),当迷宫里已经没有孩子后,老师就可以整理迷宫了,整理完后,老师就可转载 2010-06-29 15:04:00 · 353 阅读 · 0 评论 -
VC——线程同步
什么是同步:“同步”不是指平常所说的两件事情同时进行。它的目的是使多个线程之间协调工作,而且常常是避免两个线程同时进行某些操作,比如同时访问同一个共享资源。一般来说,同步是通过暂时将会发生冲突操作的某个线程暂停执行(称为阻塞线程),然后等待不会冲突时再继续执行。需要同步的情况:1、多个线程同时访问同一对象时 MFC对象在对象级不是线程安全的,只有在类级才是。如:两个线程可以安全地使用两个不同的CString对象,但同时使用同一个CString对象就可能产生问题。如果必须使用同一个对象,那么应该采取转载 2010-06-29 15:02:00 · 523 阅读 · 0 评论 -
WaitForMultipleObjects
WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象(关于该函数的描述和例子见MSDN,)。但同时该函数在用法上却需要一定的技巧。 原型:DWORD WaitForMultipleObjects( DWORD nCount, const HANDLE* lpHandles, BOOL bWaitAll, DWORD dwMilliseconds ); 当WaitForMultipleObjects等原创 2010-06-29 15:12:00 · 416 阅读 · 0 评论 -
WaitForSingleObject
[编辑本段]WaitForSingleObject函数VC声明DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); VB声明Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long [编辑本段]说明 参数hHandle是一个事件的句柄,第二个参原创 2010-06-29 15:14:00 · 498 阅读 · 0 评论 -
VC实现线程同步(或异步)
操作系统里讲的的进程同步,用的是信号灯,PV操作,P操作看成是申请资源,V操作是看成是交还资源,资源可以有很多解释,比如时间,空间,数据等,而信号量可以看成是资源数目。在WIN32里多进程用得少,因为进程建立很费劲,分配虚拟内在是其中一个原因,取而代之的是线程,线程可以看成是小进程,是一个进程中活的东西,进程是死的,占有了内存和得到了一些系统资源后就死了,只有启动主线程的时候才活起来,主线程的地位相当重要,主线程一结束进程也就被OS踢出去了。进程间也可以通信,当然要复杂一些,因为地址空间完全不同,用得多的有原创 2010-06-29 15:23:00 · 1253 阅读 · 0 评论 -
ACE网络编程开发网
<br />from www.acejoy.com ACE网络编程开发网<br />没搞懂<br />同步:函数没有执行完不返回,线程被挂起<br />阻塞:没有收完数据函数不返回,线程也被挂起<br />异步:函数立即返回,通过事件或是信号通知调用者?<br />非阻塞:函数立即返回,通过select通知调用者?<br />这样看来异步和非阻塞有什么区别呢?<br />异步=非阻塞?<br />同步是在操作系统层面上,阻塞是在套接字上?<br />Reactor是同步 Proactor是异步?<br />原创 2011-03-25 10:33:00 · 1040 阅读 · 0 评论