[C++] std:async

RisingJade의 개발기록·2023년 1월 8일
0

std:async란..?

내부적으로 쓰레드 풀의 일부인(가능성이 높은) 쓰레드를 이용하여 비동기적인 처리를 하기위해 존재하는 fuction template

함수 템플릿 async은 함수 f를 비동기적으로 스레드 풀의 일부인(일반적으로) 별도의 스레드에서 실행하고 해당 함수 호출의 결과를 보유하게 될 std::future 를 반환합니다.

async에 어떠한 방식으로 수행될 것인지 정책을 전달 가능

std::launch::async
  • 바로 쓰레드를 생성해서 인자로 전달된 함수를 실행한다.(비동기적 수행)
std::launch::deferred
  • future의 get 함수가 호출되었을 때 실행한다. (새로운 쓰레드를 생성하지 않음.) (동기적 수행)

    policy를 설정하지 않으면 어느 정책이 실행되는지 알수 없다.

참고: https://en.cppreference.com/w/cpp/thread/async
https://doitnow-man.tistory.com/entry/C%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%90%98%EA%B8%B029-promise-%EC%99%80-future-%EA%B7%B8%EB%A6%AC%EA%B3%A0-async

profile
언제나 감사하며 살자!

0개의 댓글