Boost.Fiber Synchronization Template packaged_task


Synchronization Template packaged_task

packaged_task<>는 반환 값이 비동기적으로 계산될 수 있도록 값을 반환하는 호출 가능 대상을 래핑합니다.

packaged_task<>의 일반적인 사용법은 다음과 같습니다.

  1. 콜러블(callable)의 서명과 일치하는 템플릿 인수를 사용하여 packaged_task<>를 인스턴스화합니다. 콜러블을 생성자에 전달합니다.
  2. packaged_task::get_future()를 호출하고 반환된 future<> 인스턴스를 캡처합니다.
  3. 파이버를 시작하여 새 packaged_task<>를 실행하고 원래 콜러블에 필요한 인수를 전달합니다.
  4. 새로 시작된(newly-launched) Fiber에서 fiber::detach()를 호출합니다.
  5. 나중에 future<>에서 결과를 검색합니다.

실제로 이는 fibers::async()가 캡슐화하는 것과 거의 같습니다.

⚛ 원문
Email 답글이 올라오면 이메일로 알려드리겠습니다.