ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 동기, 비동기 / 싱글 스레드, 멀티 스레드
    Memo/Others 2023. 12. 29. 23:10

    동기 (Synchronous)

     코드가 순차적. 작성한 순서대로 실행된다.

     함수를 호출(요청)하고 결과(응답, 종료)가 돌아와야만 다음 함수(요청)를 실행할 수 있다.

     다음 함수는 선행 작업이 끝나기를 기다려야 한다.

     

    비동기 (Asynchronous)

     코드(작업)가 언제 실행될지 순서를 예측할 수 없다.

     함수를 호출(요청)하고 결과(응답, 종료)을 기다리지 않고 다음 함수(요청)을 실행할 수 있다.

     예외적으로 'await'로 선언된 메서드는 해당 메서드의 처리가 완료될 때 까지 대기

       → 처리 결과를 다른 곳에 넘겨줘야 하는 상황에 사용

    이미지: https://medium.com/from-the-scratch/wtf-is-synchronous-and-asynchronous-1a75afd039df

     

     

     

    스레드 (Thread)

     프로세스 내에서 실행되는 흐름의 단위

     모든 프로세스는 하나 이상의 스레드를 가진다.

     

    싱글 스레드 (Single Thread)

     하나의 프로세스가 한 번에 하나의 작업만 수행 (작업 공간이 하나)

     프로세스가 단일로 동작하는 것

     

    멀티 스레드 (Multi Thread)

     하나의 프로세스가 한 번에 여러 작업을 수행 (작업 공간이 여러개)

     프로세스가 다중으로 동작하는 것

     

     시스템 자원을 보다 효율적으로 사용 가능 & 응답성 향상

     동기화(하나의 자원에 여러 스레드가 접근) 문제 유의해야 한다.

     문맥 교환(Context Switching)을 이용

    이미지: https://velog.io/@gil0127/싱글스레드Single-thread-vs-멀티스레드-Multi-thread-t5gv4udj

     

     

     

    ⭐ 동기/비동기는 작업 순서를 의미

    ⭐ 스레드는 작업 공간을 의미

    이미지: https://stackoverflow.com/questions/59139242/stdasync-does-not-seem-to-really-implement-single-threaded-asynchronous-beha

     

    'Memo > Others' 카테고리의 다른 글

    라이브러리와 프레임워크의 차이점  (0) 2021.11.23