2009-08-31 12 views
3

私はBoostスレッドプールで作業しています。FIFOからブーストスレッドプールを優先順位に変換するには?

私はこのような構造を持っている:私は、スレッドが必要な場合

class SimThreadPool 
{ 
    static SimThreadPool* getInstance(); 

    boost::threadpool::prio_pool& getThreadPool() { return mThreadPool; } 

    simTerrain::SimThreadPool::SimThreadPool() 
    : mThreadPool(boost::threadpool::fifo_pool(1)) 
    { 

    } 

    boost::threadpool::prio_pool mThreadPool; 
} 

、私はこのようにそれを呼び出す:

SimThreadPool::getInstance()->getThreadPool().schedule(MyThread()); 

、それが動作します。

質問:このスレッドプールをfifoから優先順位に変換するにはどうすればよいですか?

fifo\_poolprio\_poolに変更しましたが、これを管理できませんでした。機能しませんでした。私はいくつかのエラーがあります。

この場合、prio_poolはどのように使用できますか?

私はクラスの代わりにprio_task_funcを使用する必要があると思いますが、私はこの目的のために私の既存のアルゴリズムを再利用したいと思います。

+1

エラーメッセージを入力してください。 – mikelong

答えて

1

私はあなたのようmThreadPoolを宣言する必要があると思う:あなたのクラスでprio_task_funcを使用する前に

boost::threadpool::scoped_pool<boost::threadpool::prio_pool, 0> mThreadPool; 

あなたはhttp://sourceforge.net/projects/threadpool/を見ましたか?

関連する問題