ACE
glintstar09
这个作者很懒,什么都没留下…
展开
-
ACE 线程条件变量
ACE_Condition类是针对OS条件变量原语的包装类。那么,到底什么是条件变量呢? 线程常常需要特定条件被满足才能继续它的操作。例如,设想线程需要在全局消息队列里插入消息。在插入任何消息之前,它必须检查在消息队列里是否有空闲空间。如果消息队列在“满”状态,它就什么也不能做,而必须进行休眠,过一会再重试。就是说,在访问全局资源之前,某个条件必须为真。然后,当另外的线程空出消息队列时,...原创 2009-05-15 09:37:40 · 158 阅读 · 0 评论 -
ACE中的栅栏 原子操作
ACE中的栅栏(Barrier) 栅栏有一个好名字,因为它恰切地描述了栅栏应做的事情。一组线程可以使用栅栏来进行共同的相互同步。组中的每个线程各自执行,直到到达栅栏,就阻塞在那里。在所有相关线程到达栅栏后,它们就全部继续它们的执行。就是说,它们一个接一个地阻塞,等待其他的线程到达栅栏;一旦所有线程都到达了它们的执行路径中的“栅栏点”,它们就一起重新启动。 在ACE中,栅栏在AC...原创 2009-05-15 10:18:14 · 545 阅读 · 0 评论 -
ACE_Thread_Manager
//Spawn the first set of threads that work on task 1.if(ACE_Thread_Manager::instance()->spawn_n(num_task_1,(ACE_THR_FUNC)taskone,//Execute task one0, //No argumentsTHR_NEW_LWP, //New L...原创 2009-05-15 10:19:39 · 162 阅读 · 0 评论 -
ACE_Task
要创建任务或主动对象,你必须从ACE_Task类派生子类。在子类派生之后,必须采取以下步骤:实现服务初始化和终止方法:open()方法应该包含所有专属于任务的初始化代码。其中可能包括诸如连接控制块、锁和内存这样的资源。close()方法是相应的终止方法。 调用启用(Activation)方法:在主动对象实例化后,你必须通过调用activate()启用它。要在主动对象中创建的线程的数目,...原创 2009-05-15 10:25:43 · 137 阅读 · 0 评论 -
Ace
#include #include #include #include #include #include #include #include #include "ace/SOCK_Stream.h"#include "ace/INET_Addr.h"#include "ace/OS.h"#include "ace/SOCK_Dgram.h"#...原创 2009-05-15 11:19:54 · 125 阅读 · 0 评论