본문 바로가기

동시성프로그래밍3

비동기 처리하는 이유 먼저 간단하게 예시를 들어 보겠다. 컴퓨터 → 버거킹 프로세스 → 통새우와퍼주니어 세트 (내가 좋아해서... ㅋㅋ) 스레드 → 세트를 구성하는 메뉴들 (햄버거, 감튀, 제로콜라) 궁금했던 것과 문제점: 비동기 처리의 효율성은 알고 있었지만 정확하게 필요한 이유를 제대로 설명할 수 없었다. 👀 해답 (비동기 처리를 하는 이유) → 프로세스들은 컴퓨터의 자원을 분할해서 사용하지만 스레드들은 프로세스마다 주어진 전체 자원을 함께 사용하기 때문. → 이렇게 되면 속도와 효율성은 높아지겠지만, 프로세스 안에서 공유되는 변수에 스레드 여럿이 동시에 접근한다면 시간 문제로 인한 Error가 발생하게 된다. → 해결: Closure, Lambda, Functional Programming 등 ⇒ 동시성 프로그래밍 2022. 3. 18.
[iOS] GCD에 대해 알아보자 아래와 이어지는 게시글입니다 비동기 프로그래밍 방식에 대해 알아보자 아래 글들을 참고했습니다 Grand Central Dispatch / Dispatch / Concurrency Programming Guide / 차근차근 시작하는 GCD 1~4 들어가며 처음에는 Operation Queue부터 쓰려고 했는데, 공부하다보니 GCD를 먼저 적고 합쳐서 올리는 게 나을 것 같아서 방향을 바꾸었습니다 ! Review 우선 동시성 프로그래밍을 복습해 보겠습니다... 동시성 프로그래밍이란? "메인 스레드에 몰려 있는 작업들을 다른 스레드에서도 동시에 작업하도록 하는 것" 즉 메인 스레드가 처리해야 할 것들을 다른 스레드에 나눠 주어, 적절하게 일을 분배시켜 동작하도록 하는 것을 말합니다. 여기서 작업을 보내는 곳.. 2022. 2. 4.
비동기 프로그래밍 방식에 대해 알아보자 링크를 참고하며 정리했습니다 비동기 프로그래밍 (Asynchronous Programming) 코드의 실행 결과에 대한 처리를 별도의 공간에 맡겨둔 뒤, 바로 다음 코드를 실행 시킨다. 프로그램의 실행 흐름을 멈추어서, 기다림 없이 바로 다음 작업을 실행할 수 있게 하는 방식이다. 한마디로 코드를 병렬 처리하는 것 ...! 1. 동시성 프로그래밍 (Concurrency Programming) - 멀티 태스킹을 위해 여러 개의 스레드를 번갈아가며 실행한다. - (주로) 싱글 코어에서 멀티 스레드를 동작 시킬 때 이용하는 방식이다. 2. 병렬성 프로그래밍 (Parallelism Programming) - 물리적으로 정확히 동시에 실행한다. - 멀티 코어에서 멀티 스레드를 동작 시킬 때 이용하는 방식이다. 동.. 2022. 2. 1.