파이썬 - 동기 / 비동기 / 직렬 / 동시

jaybon·2022년 10월 14일
0

파이썬

목록 보기
14/20

동기와 비동기

동기 sync

나는 일이 많아도 한가지씩 해

하나의 작업이 끝날 때까지 다음 작업을 하지못한다.

  • 은행 직원은 고객의 업무 보는 도중 다른 고객의 일을 하지 않는다.
  • 라면을 끓이려고 물을 올렸을 때 전화가 왔다. 하지만 라면 끓이기라는 작업이 끝나기 전까지는 전화를 받지 못한다.

비동기 async

나는 일이 많으면 함께 처리 해

작업 도중 다른 작업도 가능하다.

  • 맥날 직원은 고객들의 주문을 받고 메뉴가 먼저 완성되는 순서대로 고객을 불러 제공한다.
  • 라면을 끓이려고 물을 올렸을 때 전화가 왔다. 전화를 받아서 대화를 한다.

직렬과 동시

직렬 serial

내 직원은 한명이야

하나의 쓰레드로만 작업을 하는 방식

  • 학종이 천마리 접기를 직원 혼자 한다

동시 concurrent or parallel

내 직원은 여러명이야

여러개의 쓰레드로 작업을 할당해 분산처리를 하는 방식

  • 학종이 천마리 접기를 직원 여러명이서 한다

그래서?

동기 / 비동기는 하나의 쓰레드 내에서의 동작 방식이다.

혼자서 한가지씩 작업을 한다 -> 직렬, 동기
(병원에 한명뿐인 간호사가 주사 놓기)

혼자서 여러가지 일을 함께 한다 -> 직렬, 비동기
(TV보며 밥먹기)

여럿이서 각각 한가지씩 작업을 한다 -> 동시, 동기
(은행 창구 직원들이 고객 업무 처리하기)

여럿이서 여러가지 일을 함께 한다 -> 동시, 비동기
(카페 직원들이 주문 받고 메뉴를 제작하고 제공하기)

하드웨어적 쓰레드와 소프트웨어적 쓰레드

물리적인 코어 및 쓰레드가 1개라도 언어에서는 쓰레드를 수십개를 만들 수 있다.

참고 자료

https://velog.io/@kkang/%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%A7%81%EB%A0%AC%ED%81%90%EA%B3%BC-%EB%8F%99%EC%8B%9C%ED%81%90

https://ivdevlog.tistory.com/m/3

profile
티스토리 블로그 https://ondolroom.tistory.com/

0개의 댓글