동시성과 병렬성
- 동시성
여러 작업을 CPU가 작업마다 시간을 적절하게 분할해 여러개의 스레드를 번갈아 가면서 실행해 동시에 실행되는 것처럼 만들어 준다.
- 병렬성
동일한 시간에 독립적인 작업을 실행 할 수 있다. 즉 동시성과 달리, 여러 작업을 동시에 실행 할 수 있다.
- 동시성과 병렬성의 장단점
- 자기가 가진 리소스에 맞춰 사용하되 동시성에서는 자원 공유를 효율적으로 할 수 있으나
- 멀티 스레드(동시성)는 하나의 스레드만 문제가 생겨도 전체 프로세스가 영향을 받을 수 있습니다.
- 멀티 프로세스(병렬성)는 구현과 통신 방식이 복잡할 수 있습니다.
- 멀티 스레드 : 단일 어플리케이션의 단일 프로세스를 두개 이상의 스레드로 처리
- 멀티 프로세스 : 단일 어플리케이션을 여러 프로세스로 구성후 작업 처리
- 사용 이유
- 파이썬은 GIL (Global Interpretor Lock) 이라는 것이 존재합니다. 멀티 스레드로 코딩해도 한 스레드만 python object에 접근이 가능하도록 되어있습니다.
- 멀티 스레드를 사용하는 코드라도 한 thread만 코드를 실행 할 수 있도록 함
- 효율성 높이기
많은 리소스를 바탕으로 병렬 처리를 늘려가면 좋겠지만 리소스에는 한계가 있기 때문에 두개를 혼합하여 사용하는 편이 좋다.
'woncoding > TIL' 카테고리의 다른 글
| TIL | 2.6.월 [CS 기초지식 | JWT] (0) | 2023.02.07 |
|---|---|
| TIL | 2.3.금 [CS 기초지식 | Django ORM] (0) | 2023.02.06 |
| TIL | 2.1.수 [CS 기초지식 | 쿠키와 세션] (0) | 2023.02.06 |
| TIL | 1.31.화 [CS 기초지식 | OSI 7계층] (1) | 2023.02.01 |
| TIL | 1.30.월 [CS 기초지식 | DB JOIN] (0) | 2023.02.01 |