clamp
Clamp
clamp
글쓰기 관리
전체 방문자
오늘
어제
  • 분류 전체보기 (509)
    • IOS (85)
    • SwiftUI+TCA+Combine (9)
    • RxSwift + MVVM (56)
    • Clean Architecture (12)
    • SWIFT (56)
    • iOS - TDD (2)
    • 디자인패턴 (4)
    • CS (56)
      • 알고리즘 (29)
      • 운영체제 (15)
      • 자료구조 (2)
      • 네트워킹 (4)
      • 기타 (6)
    • 회고 (0)
    • Firebase (18)
    • SwiftUI (10)
    • iOS - UIKit (11)
    • iOS - 오픈소스 (6)
    • 코딩테스트 (166)
      • 프로그래머스 (164)
    • 정보처리기사 (14)
    • GitHub (2)
글쓰기 / 관리자

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • uikit
  • Q
  • ㅅ
  • Swift

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
clamp

Clamp

CS/기타

동기(Sync), 비동기(Async), 직렬(Serial)동시(Concurrent)에 대한 정리

2023. 3. 13. 12:29

비동기(Async) vs 동기(Sync)

비동기(Async)

다른 쓰레드에서 작업하도록 넘긴 후 그 작업이 끝나길 "안기다리고" 다음일을 진행한다.

보낸 작업이 언제끝나는지 관심없고, 다음일을 처리한다.

 

동기(Sync)

작업을 다른 쓰레드에서 하도록 시킨 후, 그 작업이 끝나길 "기다렸다가" 다음일을 진행한다.

비동기라는 개념이 일반적으로 필요한 이유는 대부분 서버와 통신(네트워크 작업) 때문 이다.

 

 

직렬처리(Serial) vs 동시처리(Concurrncy)

직렬처리(Serial)

쓰레드에서 하던 작업을 다른 쓰레드로 보내는데, 다른 하나의 쓰레드로 원래의 순서를 유지해서 보낸다.

(보통 메인쓰레드에서) 분산처리 시킨 작업을 "다른 한개의 쓰레드"에서 처리

 

순서가 중요한 작업을 처리할 때 사용

 

동시처리(Concurrncy)

쓰레드에서 하던 작업들을 한 개의 쓰레드가 아닌 여러개의 쓰레드로 분산되어 처리된다.

몇 개의 쓰레드로 분산할지는 시스템이 알아서 결정, 다만 여러개의 쓰레드로 분산처리

(보통 메인쓰레드에서) 분산처리 시킨 작업을 "다른 여러개의 쓰레드에서" 분산되어 처리

 

각자 독립적이지만 유사한 여러개의 작업을 처리할 때

 

 

직렬처리가 필요한 이유

작업의 순서가 중요할 수 있다.

 

 

비동기, 동기 

다른 쓰레드로 보낸 작업의 종료를 "기다릴지 말지"에 대한 내용

 

직렬, 동시

다른 쓰레드로 작업을 보내는데, "몇 개의 쓰레드로 보낼지" 에 대한 내용

 

 

 

 

 

 

 

저작자표시 비영리 동일조건 (새창열림)
    'CS/기타' 카테고리의 다른 글
    • [Agile] - 1. 애자일(agile)이란 무엇인가.
    • Framework, Library, API
    • OAuth 2.0의 개념과 동작원
    • REST API 정리
    clamp
    clamp
    주니어 iOS개발자의 발악!!!!!!!

    티스토리툴바