• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

concurrent질문입니다.

22.01.05 14:49 작성 조회수 194

1

아래처럼 concurrent임에도 클로저내에 있는 task들은 하나로 취급되어 print(slowadd(1,5))하나하나는 모두 동일한 스레드에서 처리되는건가요?
 
 
 
 

답변 1

답변을 작성해보세요.

0

네 맞습니다.
하나의 클로저에 들어있는 여러 함수의 실행문들이 하나의 작업으로 묶이는 개념입니다. 그렇기 때문에 저렇게 하신 모든 작업이 사실상 "하나의 작업"이고, 따라서.. 하나의 쓰레드에 배치가 됩니다.

그렇기 때문에
실험을 해보시면.. 출력의 순서가 차례대로 일어납니다.

그래서.. slowAdd 함수 실행을... 

slowAdd(1, 2)
slowAdd(2, 3)
slowAdd(3, 4)
slowAdd(4, 5)

이런 식으로 해보시면,
하나의 작업이기 때문에 ===> 
비동기(async), 동시적(concurrent)임에도 불구하고
순서대로 출력되는 것을 보실 수 있으실 꺼예요!


고맙습니다.

이한규님의 프로필

이한규

질문자

2022.01.05

3개의 답변 감사합니다.

대학생때 수 많은 교수님께 질문하고 답변을 받아왔지만,

이건 뭐 교수님보다 명쾌한데요 답변들이..

 

감사합니다. 또 찾아올게요 

아이고! 이렇게 좋은 말씀을...ㅎㅎ

좋은 답변들이 되기 바랍니다. :)