• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

DispatchWorkItem의 qos 관련해 질문 있습니다.

21.02.01 21:38 작성 조회수 150

1

안녕하세요 앨런님~ 월요일 잘 보내셨나요 ~_~!! 다름이 아니라 DispatchWorkItem의 qos 관련해 질문이 있어 돌아왔습니다..! 허허...

DispatchWorkItem(qos: .utility) { }

위와 같이 DispatchWorkItem 을 생성할 때 qos 파라미터를 통해 작업의 우선순위를 설정할 수 있는데요! 이는 기존 clousure 로 보낼 때, .async(qos: .utility) 에서 qos 를 설정해준 것과 대응되는 작업이지요?

그리고 1:20초 즈음 qos 없이 DispatchWorkItem 을 생성할때 defualt qos 는 global 이라고 설명 주시는것 같은데, 실제로 init 함수를 살펴보니 .unspecified로 지정이 되어있는 것 같더라고요. 혹시 제가 중간에 설명을 잘못 이해한걸까요 ?_?

감사합니다 :)

답변 5

·

답변을 작성해보세요.

1

네 제 생각에는
그정도면 충분할 것 같습니다 ㅎㅎ


네 저도 감사드리고 좋은 밤 되세요 :) 🙏🏻

1

아하 네넵 우선은 제 이해력의 한계로...! 애플에서는 unspecified 로 설정 되어 있다.. 정도로만 가져가야겠네요 🤔

나중에 unspecified 일때 default를 따라가는 경우도 있다..? 정도의 비슷한 내용을 보게 되면 그때 다시 설명주신 내용 참고해보도록 하겠습니다

답변 감사합니다!! :) 

1

아 네네! 맞아요! 그런 의미로 말씀드린게 맞습니다 ^^;

.default요!!

제가 헷갈리게 말씀을 드렸군요ㅠㅠ

1

뭔가 unspecified 는 공식 문서에 나와있는 설명도 그렇고.. 다른 글들을 살펴봐도 명확하지 않은거 같아요ㅜㅜ

그렇다면 앨런님이 설명주신 "qos 가 global 을 따라간다"는 의미는, (사실 global 이라는 qos 는 없기 때문에) global dispatchQueue 의 기본 qos 인 default를 따라간다는 말씀이실까요..? (쓰고 보니 뭔가 더 잘못 이해하고 있는거 같네요..? )

1

안녕하세요 수진님 :)

1.
네 정확하게 맞습니다. DispatchItem을 생성할때의 qos는 클로저로 보낼때의 .async(qos: .utility) 에서 qos를 설정해준 것과 동일합니다. (대응되는 작업입니다.)

2.
설명은 잘못이해하신게 아닌 것 같고, (정확하게 따져보면) 수진 님께서 말씀하신대로 애플 문서에 나와있는 .unspecified 가 디폴트가 맞을 것 같습니다. 다만, 해당 "unspecified"자체가(특정되지 않은)  https://developer.apple.com/documentation/dispatch/dispatchqos/1780703-unspecified
라고 정의가 되어있어서, 제가 알기로는 "특정되지 않은 경우" (레거시API도 지원하지만) 그 외에 기본적인 설정(default global)을 따라간다. 라고 되어있어서, 제가 예전에 참고했던 (레이웬더리치) 자료에서 그렇게 기술하고 있어서 그 내용을 그대로 인용했던 것 같습니다. 제가 참고했던 자료보다 어쨌든 애플문서가 더 우선일테니 수진 님께서 자료를 찾으신 내용을 우선으로 생각하시면 될 것 같습니다. :)

unspecified라는 워딩 자체에 대해선, 저도 애플이 공식적인 문서 내용에서 밖에 참고해서 말씀드릴 수 밖에 없으므로.. 더 이상의 깊은 내용은 제가 전달해드릴 수 있는 수준을 벗어나는 내용인 것 같습니다...

이정도로 답변이 되셨으면 하는 바람입니다....^^;

감사합니다. :)