일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hokidoki
- 개발
- Hitit
- hokeys
- HTML
- 호키스
- Svelte
- 자바스크립트 자료구조
- 스벨트
- 계명대 이종호
- 리액트 예제
- javascript
- data structure
- 호키도키
- 자료구조
- 비동기
- 리액트
- 개발자
- 힛잇
- queue
- 스위프트
- 계명대
- TDD
- react
- jest
- SWIFT
- 이종호
- 자스민
- IOS
- 자바스크립트
- Today
- Total
목록동시성 프로그래밍 (3)
Dog foot print
들어가기 앞서 Dispatch Queue는 어떤 쓰레드로 작업을 보내기 위한 대기행렬을 의미한다. 이 포스팅에서 다뤄볼 내용은 각 쓰레드 마다 어떤 역할을 하고 있고, 작업이 어떻게 이루어 지는지를 다뤄본다. Main Main 쓰레드로 작업을 보내기 위한 Queue이다. 이 Queue의 특징은 다음과 같다. Serial Queue 이다. 작업이 끝나야 다음 작업이 실행된다. Main Thread에게 작업을 요청한다. 유일한 쓰레드인 Main Thread 에게 요청 UI업데이트 작업을 요청 할 수 있다. 유일하게 UI업데이트를 요청 할 수 있다. sync메서드를 사용 할 수가 없다. 이 queue로 작업을 보낼 때 sync 메서드를 사용하여 코드를 처리하면 에러가 발생한다. 사용 예시 DispatchQue..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvoRfl/btrfw4aBiAX/3BkCDLwMCAmPrmKVDyFXYK/img.png)
비동기와 동시의 차이 학생들과 이야기 해보면 비동기 와 동시 의 의미를 헷갈리는 경우가 종종 존재한다. Serial 과 Concurrent를 설명하기 전에 집고 넘어가도록 하자. 비동기는 말그대로 어떤 작업을 기다리지 않는다라는 의미이며, 동시라는 의미는 같은 시간에 어떤 작업이 말 그래도 동시에 일어 날 수 있는 것을 의미한다. Serial Queue SerialQueue는 순서가 중요한 작업들을 처리할 때 사용 되는 큐이다. 아래의 코드를 보도록 하자. let queue = DispatchQueue(label : "serial") queue.async{ sleep(3); print("1") } queue.async{ sleep(2); print("2") } queue.async{ sleep(1); p..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Vteuc/btrfzkw2ju3/6XZFWFIrKGSx43jxpbel1K/img.png)
쓰레드란 무엇인가 ? 쓰레드를 쉽게 이해하기위해서는 내 Application에서 동작하는 일꾼 이라고 생각 할 수 있다. 우리의 어플리케이션이 동작 할 때도 이런 쓰레드에게 일을 맡겨야 하는데, 우리가 만약 별도의 쓰레드에게 일을 맡기지 않는다면 메인 쓰레드 에서 일을 모두 하게 된다. 쓰레드를 생성하고 삭제하는 일을 꽤나 고난이도의 일이다. 그렇기에 IOS에서는 친절하게도 쓰레드를 생성하거나 삭제하는 일을 대신 해주고 우리는 별도의 쓰레드에게 일을 시키기만 하면 된다. 별도의 쓰레드에게 일을 시키는 이유 이런 의문이 들 수 있다. 현재까지 쓰레드를 나누지 않고, 잘만 사용 되던데요. 굳이 다른 쓰레드에게 일을 시키는 상황이 있을까요 ? 합리적인 질문이다. 우리의 IOS CPU의 성능은 정말이지 엄청나다..