일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 대외활동
- 1일1알골
- Swift
- Protocol
- 스위프트
- swift concurrency
- 리액트
- 후기
- 운영체제
- 백준
- 영남대
- 멋쟁이사자처럼
- dispatchqueue
- spritekit
- 웹
- SwiftUI
- cs
- widget
- c++
- 스유
- uikit
- TCA
- 알고리즘
- 문법
- widgetkit
- 멋사
- 네트워크
- 위젯킷
- composable architecture
- 컴퓨터그래픽스
- Today
- Total
목록gcd (3)
맛동산이
이전에도 다양하게 다룬적이 있지만 이제야 좀 정리가 되는느낌이라 다시한번 정리하려고 합니다. Thread 스레드는 cpu에서 바라보는 작업단위이다. 프로그램은 저장소에 저장되어있는 코드 덩어리이고, 이 코드덩어리가 메모리에 올라간 상태를 프로세스라고 한다. 프로세스는 cpu가 할당되어진 프로그램의 상태인것 프로세스 내부에서 동시성(time slicing)방식으로 여러개의 일을 처리할수 있는데, 이때 생성되는 독자적인 프로세스 내부의 작업 단위를 스레드라고한다. ex) 크롬이라는 프로그램이 메모리에 올라가면 프로세스, 해당 크롬에서 여러개의 창이 켜진상태를 여러 스레드가 존재한다고 생각하면 쉽다. Thread pool 위의 스레드 생성방식에서 계속해서 새로운 스레드를 생성하는것은 좀 불필요한 작업일수 있기..
GCD란, iOS에서 멀티코어 프로세스에서 멀티스레딩을 지원하게 해주는 애플이 개발한 기술이다. GCD를 사용하기 위해서는 Dispatch라는 프레임워크를 사용하면 된다.Dispatch 프레임워크에는 DispatchQueue, DispatchWorkItem과같은 다양한 클래스가 존재한다.이를 통해서 Dispatch Queue 에 작업을 보내면 그에 따라 스레드를 적절히 생성해서 실행하고 작업이 종료되면 스레드를 GCD가 자동으로 제거한다. Serial, Concurrent serial은 단일 스레드 환경concurrent는 다중스레드 환경// Serial Queue DispatchQueue(label: "Serial") DispatchQueue.main // main은 전역적으로 사용되는 Serial D..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/YNoFb/btr5gvvAmOX/YYiHowP7squQwpDpCRUgF0/img.png)
역시나 킹갓 제드님이 다 정리해두셨다. iOS ) Concurrency Programming Guide - Concurrency and Application Design 스위프트 프로그래밍을 처음 접하다 보면, api 에서 어떠한 값들이 변화하고 그 값을 통해서 ui를 변경 해주는 경우 dispatch queue.main.async 라는 명령어를 통해서 ui를 변경해준 경험이 존재 할것이다. 없음말고, 무튼 나는 있다. 근데 이렇게 dispatchqueue.main.async가 뭔지 알기 위해서 이렇게 글을 쓴다. GCD( grand central dispatch )의 발단 우리컴퓨터에서 연산처리속도는 cpu의 성능에 따라 정해진다. 하지만 이러한 연산 속도를 올리기 위해서 cpu를 쉬지 않고 돌린다면,..