请问ACE_Task怎样动态增加、减少线程数?
今天问题有点多,:),比如一开始启动了3个线程,可是过程中发现不够用,想增加2个线程,但是又不能停止原来的3个,请问怎么操作? 设置标志,发现不够了,直接启动activate呗。有什么难的?回复 #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]