-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
19_5_1~100까지의 합 구하기 질문
19.06.16 21:26 작성 조회수 278
1
선생님께서, 강의중에 쓰레드 두개가 각각 1~50, 51~100까지 더하는 걸 해보라고 하셨었는데.
저는 아래와 같이 만들어 봤습니다.
여기서 54~55번 줄의 아래 코드를 수행 시
std::async(sum_a_to_b, 1, 50);
std::async(sum_a_to_b, 51, 100);
결과는 잘 나오는데, 이런 경고창이 함께 뜨더라구요.
warning C4834: 'nodiscard' 특성이 포함된 함수의 반환 값을 버리는 중
아무래도 선생님께서 영망 마지막에 말씀하신,
async 는 퓨처와 연결해주지 않으면 시퀀셜하게 실행된다라는 점 때문인 것 같습니다.
그래서 auto로 선언을 해서 퓨처와 연결을 해줬더니이번에는 cout 출력이 제대로 되지 않더라구요...!
왜 그런 건지 알 수 있을까요?
답변을 작성해보세요.
0
홍정모
지식공유자2019.06.17
* '잘 안되는 경우'의 코드도 같이 넣어주세요.
future연결해보셨다는 부분의 코드가 빠져서 어떻게 하셨는지는 정확히 알 수가 없습니다만 제가 추측하기에는 future의 get()을 빠뜨리신 것 같습니다. sumatob 함수를 (의도적으로) 반환값이 없는 형태로 만드신 것 같은데 ... 까지만 말씀드리겠습니다. lock걸면 느린데도 일부러 실험해보려고 구현하신 것 같으니 강의 내용은 다 이해하신 것으로 보입니다.
답변 1