rainfish 发表于 2008-12-17 15:10:21

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

今天问题有点多,:),比如一开始启动了3个线程,可是过程中发现不够用,想增加2个线程,但是又不能停止原来的3个,请问怎么操作?

winston 发表于 2008-12-17 15:50:12

设置标志,发现不够了,直接启动activate呗。有什么难的?

rainfish 发表于 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;
}
页: [1]
查看完整版本: 请问ACE_Task怎样动态增加、减少线程数?