如何动态增加线程池的线程数?
启动线程池之后,由于业务的需要,需要增加或减少线程池中线程的个数,请问该如何增加线程池的线程个数? 能够做到的。有两种办法:1、一个task对象只跑一个处理线程,这样能动态的处置task对象,达到你的目标。
2、用int ACE_Task_Base::activate 函数,重复调用。 让我用task跑当线程试一下。
原来模拟添加线程功能,用task跑多线程如下,前面5个线程能收到消息,后面2个线程老收不到。
class CTask_Manager: public ACE_Task<ACE_MT_SYNCH>
。。。
CTask_Worker task_tp0,task_tp1;
task_tp0.activate(THR_NEW_LWP | THR_JOINABLE, 5);
task_tp1.activate(THR_NEW_LWP | THR_JOINABLE, 2); 当一个ACE_Task<ACE_MT_SYNCH>对象只跑一个处理线程,启动多个后,如何调度将消息发送给哪个对象,没有线程池的效果呀? 能啊,你只要抓住这个task对象,就可以向这个对象的队列发送停止消息,MB_STOP. 我去....lz在自问自答么{:soso_e103:}
页:
[1]