首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ACE多线程编程(1)

2012-06-27 
ACE多线程编程(一)使用ACE进行多线程编程的内容相对较多,分多篇总结。本文中主要介绍线程的创建、互斥体和线

ACE多线程编程(一)

使用ACE进行多线程编程的内容相对较多,分多篇总结。

本文中主要介绍线程的创建、互斥体和线程间通信。

1、线程的创建

使用ACE进行多线程编程比较简单,只需:

    从ACE_Task_Base创建子类;重新实现svc()虚方法,这个函数是新线程的进入点。新线程从svc函数开始执行,函数返回,则新线程也结束;调用ACE_Task_Base::activate()方法启动新线程;调用ACE_Task_Base::wait()方法等待新线程结束。调用wait方法的父线程将阻塞,一直等待所有子线程结束。

注:如果父线程没有等待子线程,而是提前退出,则子线程也将被迫终止。

2、互斥体

ACE提供了一系列的互斥体,互斥体提供了简单的acquire()和release()接口。在多线程的互斥保护中,我们可以使用ACE_Thread_Mutex互斥体。

举一个简单的例子,多个线程使用同一个socket发送数据,为了防止交叉写,我们需要使用互斥体,示例代码如下:









 

热点排行