29강 async let 작업 취소 부분 질문
📌 자주하는 질문 모음
자주하는 질문을 먼저 확인 부탁드리며, 질문은 최대한 구체적으로하셔야 빠르게 답변드릴 수 있습니다.
[질문 예시]
(1) 몇강, 몇초의 내용이 잘 이해가 안갑니다. (제가 적어놓은 강의 번호 "10강, 7분 강의 내용 중에... " )
(2) 강의자료 몇페이지의 내용이 잘 이해가 안갑니다.
(3) 정확하게 어떤 포인트에 대한 내용이 이해가 안갑니다. 다시 설명해주실 수 있나요?
29강 17:10 ~ 18:00 사이 내용에 질문이 있습니다.
CASE2에서 배열이나 튜플로 구현하는 경우 취소 전파가 늦게 된다고 적혀있고 설명도 그렇게 해 주시는데, CASE1에 비해 취소 전파가 늦게 될 수 있다고 이해가 되는데요.
CASE2는 CASE1에 비해 try await을 연달아서 사용하지 않아도 된다는 점만 다르고, 나열하는 순서대로 실행되는 동작 자체는 동일한것 같은데 두 case가 실제로 차이가 있는건가요? 두 case가 완전히 동일하게 동작하는 것 같은데 차이가 있는 것처럼 설명하시는것 같아서 제가 잘못 이해한 것인지 궁금합니다.
답변 1
0
네 안녕하세요 joey !
제가 CASE 1 , CASE 2 에서 말씀드리려고 하는 포인트는, async let의 암시적취소에서는 코드 순서의 배치가.. 암시적 취소 전파에 중요한 영향을 미칠 수 있다는 점에 대해서 말씀드리려고 하는 거예요 !
암시적 취소: 하나의 자식 작업에서 에러가 발생했을 때, 나머지 다른 자식 작업에 에러를 전파하는 경우
예를 들어 아래처럼 튜플로 구현하실때,
image3를 가장 먼저 배치 시키시면, (아무리 튜플이라고 하더라도) 튜플의 첫번째 요소를 가장 먼저 기다린 후에.. 그 다음 image3 -> image1 -> image2 -> image4 -> image5 로 넘어갑니다.
(여기서 image3가 에러를 발생시키고 가장 일찍 종료가 되는 경우임)
let fetchedImages = try await (images3, image1, image2, image4, image5)따라서, 위처럼 구현하시는 것은 아래의 코드와 순서가 완전히 동일합니다. (동일하게 동작할 수 밖에 없습니다. image3가 가장 먼저 배치되어 있고, 코드는 "순서대로"만 기다리게(동작하게) 됩니다.)
let fetchedImage3 = try await image3
let fetchedImage1 = try await image1
let fetchedImage2 = try await image2
let fetchedImage4 = try await image4
let fetchedImage5 = try await image5
따라서 순서를 동일하게 배치하면 완전히 동작이 똑같은 순서대로 동작하겠지만.. 예를 들어 튜플 순서를 아래처럼 1 -> 2 -> 3 -> 4 -> 5 로 배치시키시면, 동작이 달라질 수 있다는 것을 설명드리기 위한 예제입니다.
let fetchedImages = try await (images1, image2, image3, image4, image5)
이점을 잘 생각해보시면 좋을 것 같아요!
고맙습니다. :)
수강 기간 연장 문의
0
25
1
수강연장부탁드려도될까요..
0
40
2
Combine Playground 에서 실행 시
0
54
2
레디선 테스트코드에서 채널이름은 없어도 되는건가요?
0
39
2
70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문
0
41
1
searchable이 화면 하단에 위치해요
0
60
2
모니터와 synchronized, ReentrantLock, 원자적연산 CAS관련해서 추가적으로 더 깊게 공부했는데 제가 이해한 것이 맞나요??
0
83
1
mac python 3.10 - permission denied
0
53
1
Future cancel기능을 사용했지만 interrupt가 발생하지 않을 때 어떻게 처리해야하나요?
0
71
2
Drawing Cycle 관련 질문
0
72
1
2.스레드 생성과 실행 - 17P 그림 문의
0
71
2
Task 의 default 우선순위 문의 (utility vs medium)
0
69
2
18강 자식 작업의 메타데이터 상속 관련 강의 자료 문의
0
64
1
withCheckedContinuation 에서 resume 호출의 안정성 보장 질문
0
95
1
참고 코드 자료 7-StructuredConcurrency(102, 103줄) 오타?
0
74
3
비동기 반복문은 하나의 thread에서만 동작하게 되나요??
0
92
2
25.05.13일 업데이트 내용 문의
0
117
1
5강 weak self 처리 관련
1
176
2
Task 클로저에서 weak self 미사용에 대해 질문드립니다!
0
162
1
업데이트 예정 강의 공개 일정이 궁금합니다.
1
148
1
Task를 함수 내부에서 사용했을 때 값의 변화를 예상하는 법
0
266
2
파트1 PDF 강의 자료 다운로드
0
187
2
Part 2에 대해서
0
223
1
강의자료 관련 질문
0
306
2





