8건의 항목
Thread에 대해서 알아본다. 쓰레드(Thread) 쓰레드는 프로그램 **내부의 흐름(맥)**이다.
동시성과 깔끔한 코드는 양립하기 아주 어렵다. 그럼에도 불구하고, 동시성은 왜 필요할까? 객체는 처리의 추상화다. 스레드는 일정의 추상화다. - 제임스 O. 코플리엔 동시성이 필요한 이유? 동시성은 “무엇”과 “언제”의 Coupling을 없애는 전략이다.
무심코 사용하는 많은 비동기 함수들은 사실 변화의 과정을 겪은 결과들이다. 네트워크 I/O API가 어떻게 변화되어 왔는지 알아보자. 한눈에 보기 network API를 사용하다보면 자연스레 머리에 이런 그림이 떠오른다.
여러 일을 여러 사람이 각자 동시에 하는 것 행위도 여러개, 주체도 여러개 가짜 병렬 (논리적 개념) 코어는 하나임에도 두개의 서로 다른 동작을 번갈아가며 처리하여 동시에 수행하는 것 “처럼” 보이는 것 소프트웨어 수준으로 처리 Thread, Actor 등 Reference Parallelism .
RunLoop이란 무엇일까? RunLoop Run loop은 일단 Thread와 관련된 녀석이다. 간단하게 말하면, Run loop은 event를 처리하기 위해 만들어진 loop이다. Timer 또한 함께 처리한다.
autoreleasepool. 어딘가에서 들어봤지만 언제쓰는지는 전혀 몰랐다.
동시성은 이제 프로그래밍에서 빼놓을 수 없는 요소가 되었다.
앞에서는 새롭게 나온 개념들을 어떻게 사용하는지에 대해서 알아보았다. 그렇다면 왜 이렇게 설계했는지, 실제로는 어떻게 동작하는지 알아보자. Threading Model New feed reader 앱을 만든다고 생각해보자. 고수준에서 어떠한 것들이 필요할지 생각해보자.