[CS] 동기 vs. 비동기 / 직렬 vs. 동시

소이뎁·2023년 8월 23일
1

My Computer Science

목록 보기
1/2
post-thumbnail

🌈 iOS개발자 앨런의 프로그래밍에서 동기/비동기 개념에 대한 가장 직관적인 이해를 보고 정리한 글입니다.

📍 동기 vs. 비동기

1) 동기(Synchronous)

작업을 다른 스레드에 보내고 해당 작업이 끝날 때까지 기다린 후(block) 다음 작업을 시작한다.

BeforeAfter

2) 비동기(Asynchronous)

작업을 다른 스레드에 보내고 바로 다음 작업을 시작한다.

BeforeAfter

📍 직렬 vs. 동시

1) 직렬(Serial) 처리

다른 하나의 스레드로만 작업을 보낸다. 작업의 순서를 지켜야 하는 경우 사용한다.

BeforeAfter

2) 동시(Concurrent) 처리

다른 여러 개의 스레드로 분산하여 작업을 보낸다.

BeforeAfter

📍 Deep

  • 비동기동시는 같은 말인가?
    비동기: 작업을 보내는 스레드에 관련된 개념이다. 작업을 보내는 스레드가 보낸 작업이 끝나기를 기다리는지 아닌지가 중요하다.
    동시: 작업을 받는 스레드에 관련된 개념이다. 작업을 받는 스레드가 한 개인지 아닌지가 중요하다.

  • 비동기동시는 무엇과 관련이 있는 개념인가?
    비동기: 서버와의 통신(네트워크 작업)
    동시: 성능, 반응성, 최적화

  • 동시(concurrent)병렬(parallel)은 같은 말인가?
    동시: 싱글 코어에서 멀티 스레드를 동작시키는 방식이다. 실제로 여러 작업이 동시에 진행되지는 않는다.
    병렬: 멀티 코어에서 멀티 스레드를 동작시키는 방식이다. 실제로 여러 작업이 동시에 진행된다.

0개의 댓글