【发布时间】:2010-11-24 08:20:57
【问题描述】:
我正在开发一个 Boost 线程池。
我有这样的结构:
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\_pool 都更改为 prio\_pool,但我无法做到这一点 - 它不起作用。我遇到了一些错误。
在这种情况下如何使用prio_pool?
我认为我必须使用 prio_task_func 而不是类,但我想为此目的重用我现有的算法。
【问题讨论】:
-
请提供错误信息。
标签: c++ boost threadpool sample thread-priority