inflearn logo
강의

Course

Instructor

Becoming a Successful Real iOS Developer [From Basics to Practice]

concurrency_1 강의 코드 결과 중 이해가 안가는 부분이 있습니다

331

codingmon

4 asked

0

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        start()
    }

    func simpleWork() {
        print("doing simple work")
    }

    func someWork() async -> Int {
        try? await Task.sleep(nanoseconds: 1000  1000  1000 * 3)
        return 10
    }

    func start() {

        Task {
            print("start !")
            let num = await someWork()
            print(num)
            print("finish !")
        }

        simpleWork()

    }
}

concurrency_1 강의를 듣고 위의 코드를 playground가 아닌 project파일을 만들어서 실행시켜보았습니다.

저는 아래와 같은 결과가 나올거라 예상했었습니다.

start !
doing simple work
10
finish

그런데 빌드를 시켜서 터미널에 뜨는 것을 보니 아래와 같은 결과가 나옵니다.

doing simple work
start !
10
finish !

Task 자체를 통째로 아예 비동기 작업으로 인식해서 이런 결과가 나오는 것일까요??
결과가 이렇게 나오는 이유를 잘 모르겠습니다🥲

 

ios swift 동시성

Answer 1

1

enilv0529

안녕하세요

우선 Task 블록은 비동기 동작이 맞습니다.

그래서 보통은 Task블록과 일반코드가 있을 때 어떤게 먼저 실행될지는 상황에 따라 달라집니다.

그러나 일반코드가 무조건 먼저 실행되는 조건이 있습니다.

UIImage, UIView, UIViewController 같은 화면으로 구성되는 클래스를 상속받을 때는 무조건 일반코드가 먼저 실행됩니다.

이 때는 Task의 우선순위가 낮아진다고 이해하시면 될 것 같습니다.

 

패싱1강에서 강의중에 질문 있습니다.

0

72

2

table view 없음

0

99

2

에러 질문 [UITextField setDataSource:]: unrecognized selector sent to instance 0x107079600"

0

202

2

Main interface 지정 방법

0

168

1

Closure_3 Capture List에 참조 타입 값을 작성할 경우에도 deinit 실행되는 이유가 뭘까요?

0

171

2

TodoCell UIview 생성 후 연결 시 오류

0

415

2

테이블 뷰 데이터 업데이트 관련 질문

0

345

2

TODO List Coredata 질문입니다.

0

342

1

혹시 추가예정인 강의가 대략 언제쯤 나오는지 알수있을까요..?

0

359

1

swift에서 import 헤더를 안해도 되는이유가 궁금합니다.

1

620

1

closure 3 에서 weak로 준 부분이 궁금합니다.

0

320

1

self.navigationBar.topItem?.leftBarButtonItem을 해도 button이 보이지 않습니다

0

592

2

func 기능을 쓸때 self. 을 왜쓰는지 이해가 잘안되네요 ㅠㅠ

0

412

1

Closure2 강의에서 예문처럼 똑같이 myfunc2, myfunc3 만들었을때

0

373

1

클론강의 tableViewCell

0

404

1

Location.pin강의에서 self질문이요

1

253

1

넷플릭스 table cell 관련해서 질문이 있습니다.

0

503

1

Capturing Valus

0

295

1

안녕하세요 todolist강의중에서 UI구성중 xib파일 오토레이아웃질문입니다.

0

314

1

환율 강의 테이블뷰에서 데이터 관련 질문있습니다.

0

552

2

환율 네트워크처리1 질문있습니다.

0

274

1

변수 let 위치 질문입니다.

0

366

1

섹션 9 영상 잘림 확인 부탁드립니다

0

334

1

안녕하세요 강의내용 질문입니다.

0

380

1