async는 테스크 기반이고 반환값을 가질수있다고 알고있는데 찾아보니까 내부적으로 쓰레드풀을 만들어서 관리한다는 말도 있는거같은데 이게 진짜인가요?? async는 주어진 테스크가 끝나면 자동적으로 소멸하나요? (반환값이 없을때) 스레드와 async어느게 더 효율적이고 많이 쓰이나요?? 서버쪽에서
12개의 댓글
무분별한 사용은 차단될 수 있습니다.
async는 테스크 기반이고 반환값을 가질수있다고 알고있는데 찾아보니까 내부적으로 쓰레드풀을 만들어서 관리한다는 말도 있는거같은데 이게 진짜인가요?? async는 주어진 테스크가 끝나면 자동적으로 소멸하나요? (반환값이 없을때) 스레드와 async어느게 더 효율적이고 많이 쓰이나요?? 서버쪽에서
년차코딩노예
서버는 잘 모르는데
요새 패러다임이 스레드를 직접적으로 컨트롤 하는거 보다
태스크로 필요한 메소드 단위로 분리하는거 같더라
아마 스레드 풀에서 꺼내서 쓰고 다시 스레드 풀로 돌아갈걸?
그리고 어느게 더 효율적이라고 하기 뭐한게 두개를 상황에 따라서 맞는걸 사용하니 어느게 더 효율적이다라고 이야기하기 애매할 듯
년째 고민중
아하 async가 진짜 내부에 스레드풀을 만들고 관리해주나보네요? 머단...
년차코딩노예
ㅇㅇ 그래서 이전보다는 멀티스레드 구현하기가 쉬워졌다고 하더라고요. 물론 디버깅은 여전히 어렵지만
년째 고민중
ㅇㅎ 감사합니다 혹시 그런건 레퍼런스에 나와있나요?? 찾아보고싶은데 어떤식으로 구동되는지
년차코딩노예
https://en.cppreference.com/w/cpp/thread/async
a1s2d3f4g5
태스크 잘쓰면 락도 필요없고 디버깅도 쉬움
a1s2d3f4g5
thread는 join이 되고 async는 안될듯
스레드는 스레드고 async는 래핑된 스레드임
대충 몇십초 안에 끝난다 async
무한반복하거나 최소 분단위 thread
년째 고민중
그럼 async는 태스크 끝나도 조인되는게아니라 내부 스레드풀에 슬립으로 돌아가는건가요? 몇십초안에끝나는 간단 작업은 async로 하고 프로그램 살아있는동안 계속 반복해야하면 thread가 좋다 이거죠??
년차코딩노예
Async 도 wait 인가 쓰면 join 되지 않음?
a1s2d3f4g5
ㅇㅇ생각해보니까 그러긴하네 기다려야되긴하니까
잉텔
메인 쓰레드와 별개로 계속 처리를 해야된다. -> std::thread
메인 쓰레드에서 잠깐 결과 받고 처리 해야된다. -> std::async
당연 모두 쓰레드 기반이겠지만 std::async 구현체가 생각이 있다면 쓰레드 풀에서 pause 상태로 있겠지
년차코딩노예
아마 대기 큐에 들어가서 다음 작업 기다리지 않을까 함