我正在研究 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
而不是一个类,但我想为此目的重新使用我现有的算法。