我有一个要线程化的递归函数,使用 Windows 线程化或 boost 线程化。我有关于如何以两种方式进行线程化的示例,但我不确定如何将这两种方式实现到我的函数中。下面是我的 boost 线程的例子。
struct ThreadDemo {
ThreadDemo( int secs ) : secs_(secs) { }
void operator() (void) {
boost::xtime xt;
boost::xtime_get( &xt, boost::TIME_UTC );
xt.sec += secs_;
boost::thread::sleep( xt );
{
boost::mutex::scoped_lock lock(printing);
cout << "Thread ended..." << endl;
}
}
};
我不是 100% 确定它是如何工作的,但如果你们能帮助我更好地理解它,我希望可以自己实现我的功能。
最佳答案
好吧,你所拥有的看起来像一个仿函数 - 我认为你将它与线程混淆了。
要在 boost(或 windows,或 pthreads)中创建一个线程,你只需要一个函数。
这是一个很好的引用(这是我第一次学习 Boost 线程时使用的那个)
http://drdobbs.com/cpp/184401518
关于c++ - 线程函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415231/