关于win32平台"事件同步"的一个问题
在WINDOWS XP平台上开发服务端程序,很一部分模式是这样的,1,建立EVENT,
2,wiatforsingleobject或 WaitForMultipleObjects等待EVENT事件,之后再处理数据
这种模式在WINDOWS平台上很普遍,可是用ACE来实现这种方法,我不知道该怎么去实现,用哪些模式,用哪些类.我在comp.soft-sys.ace (关键字WIN32 EVENT) 上搜了一下,有好多人也问这个问题都是都没有得到正面的回答,只是说要用其它的模式,用哪些模式怎么用都没有说.我又看了看书和网上的资料,发现有以下几种方案比较接近,但是效果怎样还不太清楚
1,使用ace_event类,这个类是跨平台实现了"事件",可以用ace_event:wait方法等待,但是这种方法比较"简漏"
2.条件变量,发消息.在线程之间传递状态使用条件变量,传递数据使使用发消息(消息队列)
3.REACTOR模式,register_handle方法,我看了文档,可以使用posix 平台上的信息,也可以使用WIN32 平台上的"平台对象",但是我试过了,不行,SETEVENT之后不会触发handle_signal事件,我不知道是我对"平台对象"的理解错误还是根本就不支持WIN32平台上的EVENT
我想请教各位有经验的高手,你们是怎么实现的.thank a lot! 不是这样的啦。
对服务器端的程序开发,ACE早就有框架支持,Windows下面用异步接口类和Proactor框架,Linux用Dev_Poll_Reactor实现。
即便不用这些,服务器程序也不是这么写的。请参考本站文章。 我这个不是网络开发,不需要收发网络数据,只是本机的多个进程间交互,多个进程对一个数据集进行操作. 最好说的清楚些才好判断如何使用各种技术。
多个进程间交互,一般用内存映射文件,效率高。
页:
[1]