【问题标题】:use threads in ACE to perform different operation在 ACE 中使用线程来执行不同的操作
【发布时间】:2013-07-11 09:39:58
【问题描述】:

是否可以在 C++ 中使用 ACE 线程来执行不同的任务?

例如假设用户创建了两个名为 threadA 和 threadB 的线程。一旦他们完成了某些函数的执行,我们可以使用同一个线程threadA和threadB进行其他一些操作吗?

如果可以的话怎么做?

【问题讨论】:

    标签: ace


    【解决方案1】:

    有什么好处? 无论如何,您可以创建自己的类派生自 ACE_Task

    class myjob : public ACE_Task< ACE_MT_SYNCH >
    {
        public:
          ......
        //derived from ACE_Task
        virtual int open( void *arg = NULL );
        //derived from ACE_Task
        virtual int svc();
    }
    

    比打电话

    this->activate();
    

    在打开()中;在

    中运行你的工作
    int svc()
    {
        while( _running )
           ....
    }
    

    您可以将被 ACE_Message_Block(myjob::putq( ACE_Message_Block *pmb, ACE_Time_Value &timeout) ) 扭曲的消息传递给 myjob,而不是选择要做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多