일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬알고리즘
- Azure
- Blazor
- 구글퀵랩
- codeup
- Microsoft
- attention
- 빅데이터
- DataScience
- 머신러닝
- 파이썬기초100제
- gcp
- GenAI
- 데이터사이언스
- 알고리즘
- 한빛미디어
- 코드업
- 파이썬기초
- 생성형AI
- 클라우드
- 자연어처리
- 코드업100제
- 코드업파이썬
- C#
- 블레이저
- Python
- 파이썬
- GenerativeAI
- nlp
- 데이터분석
- Today
- Total
Tech for good
[Python] 01. Difference between Process and Thread 본문
[Python] 01. Difference between Process and Thread
Diana Kang 2022. 10. 2. 15:061. 프로세스(Process)
- 운영체제 -> 할당 받는 자원 단위 (실행 중인 프로그램)
Mac의 경우 Alt + Space 클릭하여, Search 창에 Activity Monitor 켜서 확인 가능
- CPU 동작 시간, 주소 공간 (독립적)
- Code, Data, Stack, Heap -> 독립적
- 최소 1개의 메인 스레드 보유
- 파이프, 파일, 소켓 등을 사용해서 프로세스간 통신 (Cost 높음) => Context Switching
2. 스레드(Thread)
- 프로세스(Process) 내에 실행 흐름 단위
- 프로세스의 자원 사용
- Stack만 별도 할당, 나머지는 공유(Code, Data, Heap)
- 메모리 공유(변수 공유)
- 한 스레드의 결과가 다른 스레드에 영향 끼침
- 동기화 문제는 정말 주의해야 함(디버깅이 어렵기 때문)
3. 멀티 스레드(Multi Thread)
- 한 개의 단일 어플리케이션(응용프로그램) -> 여러 스레드로 구성 후 작업 처리
- 시스템 자원 소요 감소(효율성), 처리량 증가(Cost 감소)
- 통신 부담 감소, 디버깅 어려움, 단일 프로세스에는 효과 미약, 자원 공유 문제(교착 상태;Deadlock), 프로세스 영향
3. 멀티 프로세스(Multi Process)
- 한 개의 단일 어플리케이션(응용프로그램) -> 여러 프로세스로 구성 후 작업 처리
- 한 개의 프로세스 문제 발생은 확산 없음 (프로세스 Kill)
- 캐시 체인지, Cost 비용 매우 높음(오버헤드), 복잡한 통신 방식 사용
* 아래 무료 샘플 강의를 듣고 정리한 내용입니다.
'IT > Computer Science' 카테고리의 다른 글
[Visual Studio] VS 자주 쓰는 단축키 (0) | 2022.10.17 |
---|---|
[Python] 02. Python's Gil (0) | 2022.10.02 |
Git 원격 브랜치 가져오기 (Git 명령어 없이 VS에서 클릭하여 진행하기) (0) | 2022.09.26 |
[파이썬/Python] CodeUp 파이썬 기초 100제 6092 - 6095 (0) | 2022.05.15 |
[파이썬/Python] CodeUp 파이썬 기초 100제 6087 - 6091 (0) | 2022.05.08 |