void helloFiber(boost::fibers::future<void> &f)
{
cout << "Hello, boost::fiber" << endl;
f.get();
}
int main()
{
boost::fibers::promise<void> pm;
boost::fibers::future<void> ft = pm.get_future();
{
boost::fibers::fiber f(helloFiber, std::move(ft));
cout << "Before join." << endl;
f.detach();
}
pm.set_value();
cout << "After join." << endl;
return 0;
}
이 프로그램 출력 : 가입하기 전에. 가입 후. 안녕하세요, 부스트 :: 섬유.fiber.detach() 이후에 실행하면?
출력되지 않는 이유 : 가입하기 전. 안녕하세요, boost :: fiber 가입 후에.
후 왜해야합니까? 특정 순서로 실행이 예상되는 경우 순차적 코드를 작성해야합니다. 그렇지 않으면 부당한 가정을하지 마십시오. –
창조 후 섬유가 즉시 구현되기를 바랍니다. 그러나 적절한 방법을 찾지 못하는 것 같습니다. fiber.join() 메서드가 차단되었습니다. 나는 막히지 않고 즉시 처형 되길 희망합니다. –