강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

Julie님의 프로필 이미지
Julie

작성한 질문수

앨런 Swift Concurrency for Swift 6 (Part-2)

4) 협력적 쓰레드 풀 5) 쓰레드 사용방식의 비교 GCD vs Swfit Concurrency (3강)

협력적 쓰레드 풀에서 쓰레드 운영방식 질문 드립니다.

해결된 질문

작성

·

45

0

3강 협력적 쓰레드 풀에서 쓰레드 운영방식에 대한 질문 드립니다.

보통 컴퓨터 살때 8코어, 10코어..이런식으로 얘기 하잖아요..

CPU당 하나의 쓰레드를 만들어서 운영한다면 Swift Concurrency에서는 8개, 10개 정도의 쓰레드만 가지고 동작하는건가요?

 

답변 1

0

앨런(Allen)님의 프로필 이미지
앨런(Allen)
지식공유자

Julie님 안녕하세요!

 

네 정확하게 맞습니다. 운영체제에서 CPU당 하나의 쓰레드를 만들어서 운영하게되어.. 8코어, 10코어 CPU라면 Swift Concurrency에서는 8개, 10개의 쓰레드만 가지고 동작하는 것이 맞습니다.
(CPU 1개당 1개의 쓰레드만 생성하게 되죠.)

그게 기존의 GCD하고는 다르게 "협력적 쓰레드풀"이 동작하는 방식이라고 보시면 됩니다. 그럼에도 불구하고, 기존의 GCD 이상으로 효율적으로 동작할 수 있는 것은.. 쓰레드를 운영체제에 양보하기 때문에 (쓰레드를 사용하지 않는 동안, 다른 작업(함수)이 쓰레드를 점유하고 사용할 수 있기 때문에) GCD처럼 쓰레드를 계속 생성하지 않고도 효율적으로 동작할 수 있는 것이라고 보시면 됩니다.
(스택 메모리 사용 등.. 물론 이런 면에서도 더 효율적으로 동작하는 것도 맞고요.)

 

감사합니다. :)

Julie님의 프로필 이미지
Julie

작성한 질문수

질문하기