为什么是boost::纤维块?

Why boost::fiber blocks?

本文关键字:boost 为什么      更新时间:2023-10-16

我正在尝试使用boost::fiber库,但我有"Hello, World"示例的问题。在下面的代码中,程序流在纤维结束后阻塞,并且main函数永远不会返回。

#include <iostream>
#include <boost/fiber/all.hpp>
using namespace std;
void helloFiber()
{
  cout << "Hello, boost::fiber" << endl;
}
int main()
{
  boost::fibers::fiber f(helloFiber);
  cout << "Before join." << endl;
  f.join();
  cout << "After join." << endl;
  return 0;
}

结果是:

加入前


你好,boost::纤维

我用模块化boost的电流开发分支构建了boost::光纤电流开发分支。这种行为错误在当前的实现或有什么错误在我的使用?

您的测试应用程序打印:

之前加入。你好,boost::纤维后加入。

也许您已经从分支开发中签出了一个不完整的版本

try this

int main()
{
  boost::fibers::fiber f(helloFiber);
  f.detach();
  f.join();
  return 0;
}
http://www.boost.org/doc/libs/1_58_0/doc/html/thread.html