关于ACE_Svc_Handler同时处理多个请求的问题
class Accept_Handler:public ACE_Svc_Handler<ACE_SOCK_STREAM,ACE_NULL_SYNCH>
{
private:
Request m_request;
……
};
该类作为ACE_Acceptor的处理类,问题:
1、当有多个不同的client连接过来的时候,该Handler的handle_input会被多次调用,如果handle_input中要用到m_request对象,那么这些调用用的是否是同一个对象?还是每个不同的连接使用不同的对象?
2、若是同一个客户端连接,但发起多次请求。handle_input也会被多次调用,此时的m_request是否是同一个对象?
对Acceptor的机制不熟悉,故有此问。 有多少个连接过来,Server就会new 多少个Accept_Handler对象,而不管是不同Client连接过来,还是同一个客户端连接,但发起多次请求。当然啦,每一个连接均会调用一次open()函数,有数据来或者对方关断连接,将分别调用各自Accept_Handler中的handle_input虚函数。不知我这样解释你满意不。 1.每个不同的连接使用不同的对象
2.不是同一个对象 默认就是分配一个handler,看默认实现就知道了。
请高手指点
这几个Accept_Handler对象是在同一个线程里面吗?还是创建一个Accept_Handler对象就是创建一个线程? 不能如此理解,这些对象一般用线程池调度。
页:
[1]