找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5984|回复: 5

如何动态增加线程池的线程数?

[复制链接]
发表于 2007-12-24 23:13:58 | 显示全部楼层 |阅读模式
启动线程池之后,由于业务的需要,需要增加或减少线程池中线程的个数,请问该如何增加线程池的线程个数?
 楼主| 发表于 2007-12-24 23:14:04 | 显示全部楼层
能够做到的。有两种办法:
1、一个task对象只跑一个处理线程,这样能动态的处置task对象,达到你的目标。
2、用int ACE_Task_Base::activate 函数,重复调用。
 楼主| 发表于 2007-12-24 23:14:13 | 显示全部楼层
让我用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);
 楼主| 发表于 2007-12-24 23:14:21 | 显示全部楼层
当一个ACE_Task<ACE_MT_SYNCH>对象只跑一个处理线程,启动多个后,如何调度将消息发送给哪个对象,没有线程池的效果呀?
 楼主| 发表于 2007-12-24 23:14:27 | 显示全部楼层
能啊,你只要抓住这个task对象,就可以向这个对象的队列发送停止消息,MB_STOP.
发表于 2012-8-9 08:54:46 | 显示全部楼层
我去....lz在自问自答么{:soso_e103:}
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-30 03:21 , Processed in 0.014422 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表