找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3909|回复: 2

请问ACE_Task怎样动态增加、减少线程数?

[复制链接]
发表于 2008-12-17 15:10:21 | 显示全部楼层 |阅读模式
今天问题有点多,:),比如一开始启动了3个线程,可是过程中发现不够用,想增加2个线程,但是又不能停止原来的3个,请问怎么操作?
发表于 2008-12-17 15:50:12 | 显示全部楼层
设置标志,发现不够了,直接启动activate呗。有什么难的?
 楼主| 发表于 2008-12-17 21:25:16 | 显示全部楼层

回复 #2 winston 的帖子

谢谢winston ,不知道第三个参数是这个作用,看来还得多看源代码

#include "ace/Task.h"
#include "ace/OS.h"

#pragma comment(lib, "aced.lib")

class MyTask : public ACE_Task<ACE_MT_SYNCH>
{
public:
        virtual int svc()
        {
                printf("hello zanb!\n");

                while (1)
                {
                        ACE_OS::sleep(1);
                }

                return 0;
        }
protected:
private:
};

int main(int argc, char* argv[])
{
        MyTask myTask;

        myTask.activate(THR_NEW_LWP|THR_JOINABLE, 2);

        ACE_OS::sleep(2);

        myTask.activate(THR_NEW_LWP|THR_JOINABLE, 2, 1);

        myTask.wait();

        printf("Hello World!\n");
        return 0;
}
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 22:24 , Processed in 0.016824 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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