일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- SwiftUI
- 후기
- 위젯킷
- 알고리즘
- c++
- 대외활동
- 리액트
- Protocol
- widget
- cs
- 멋쟁이사자처럼
- composable architecture
- swift concurrency
- 스유
- widgetkit
- uikit
- 네트워크
- 스위프트
- spritekit
- 영남대
- 멋사
- Swift
- dispatchqueue
- 운영체제
- TCA
- 컴퓨터그래픽스
- 웹
- 백준
- 문법
- 1일1알골
- Today
- Total
목록dispatchqueue (4)
맛동산이
Concurrent라는 뜻 iOS에서는 time Slicing을 하고 있다. (당연한 이야기) 따라서 single Thread라면, context switching을 통해서 병렬적 작업을 muti Thread라면 parallelism하게 동작한다. DispatchQueue DispatchQueue는 GCD의 쓰레드의 관리를 위한 객체가 존재함 해당 객체의 존재는 serial 과 concurrent queue두개가 존재 serial : task의 시간을 보장해주며, 순차적으로 진행 concurrent : 동시에 여러 task를 수행할수 있음 기본적으로 serial임. let queue = DispatchQueue(label: "start") queue.async { for i in 0...5 { sleep..
이전에도 다양하게 다룬적이 있지만 이제야 좀 정리가 되는느낌이라 다시한번 정리하려고 합니다. Thread 스레드는 cpu에서 바라보는 작업단위이다. 프로그램은 저장소에 저장되어있는 코드 덩어리이고, 이 코드덩어리가 메모리에 올라간 상태를 프로세스라고 한다. 프로세스는 cpu가 할당되어진 프로그램의 상태인것 프로세스 내부에서 동시성(time slicing)방식으로 여러개의 일을 처리할수 있는데, 이때 생성되는 독자적인 프로세스 내부의 작업 단위를 스레드라고한다. ex) 크롬이라는 프로그램이 메모리에 올라가면 프로세스, 해당 크롬에서 여러개의 창이 켜진상태를 여러 스레드가 존재한다고 생각하면 쉽다. Thread pool 위의 스레드 생성방식에서 계속해서 새로운 스레드를 생성하는것은 좀 불필요한 작업일수 있기..
세마포어(DispatchSemaphore) 임계영역에 대하여 임계영역(critical section)이란, 여러프로세스가 동작할때, 각 프로세스가 공유 데이터로 접근하는 프로그램 코드 블록을 의미하며, 이렇게 여러 프로세스가 동시다발적으로 임계영역(즉 공유 메모리) 에 접근하게되면, 데드락이 발생할수도 있는 위험한 값이 오염될수도 있는 영역을 의미한다. 뮤텍스와 세마포어 뮤텍스와 세마포어는 이러한 위의 임계영역에 대한 프로세스 접근 제어 정책을의미한다. 뮤텍스 : 뮤텍스는 공유영역에 단 하나의 프로세스만 접근이 가능하도록 하는 정책이다. 세마포어 : 세마포어는 공유영역에 접근할수 있는 프로세스의 수를 지정해주는 정책이다. Swift에서의 세마포어 스위프트에서느 dispatchSemaphore이라는 키워드..
역시나 킹갓 제드님이 다 정리해두셨다. iOS ) Concurrency Programming Guide - Concurrency and Application Design 스위프트 프로그래밍을 처음 접하다 보면, api 에서 어떠한 값들이 변화하고 그 값을 통해서 ui를 변경 해주는 경우 dispatch queue.main.async 라는 명령어를 통해서 ui를 변경해준 경험이 존재 할것이다. 없음말고, 무튼 나는 있다. 근데 이렇게 dispatchqueue.main.async가 뭔지 알기 위해서 이렇게 글을 쓴다. GCD( grand central dispatch )의 발단 우리컴퓨터에서 연산처리속도는 cpu의 성능에 따라 정해진다. 하지만 이러한 연산 속도를 올리기 위해서 cpu를 쉬지 않고 돌린다면,..