반응형
Process & Thread
프로세스 : 실행 중인 프로그램. 자원(resources. 메모리, CPU ...) + 쓰레드로 구성
쓰레드 : 프로세스 내에서 실제 작업을 수행.
모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다.
프로세스 : 쓰레드 = 공장 : 일꾼
싱글 쓰레드 프로세스 = 자원 + 쓰레드
멀티 쓰레드 프로세스 = 자원 + 쓰레드 + 쓰레드 + ... + 쓰레드
여러 작업을 나눠 동시에 수행 가능. 보다 효율적으로 처리할 수 있다.
대부분의 프로그램은 멀티쓰레드로 작성되어 있다.
멀티쓰레드의 장단점
장점 | - 시스템 자원을 보다 효율적으로 사용할 수 있따. - 사용자에 대한 응답성(responseness)이 향상된다. - 작업이 분리되어 코드가 간결해진다. |
단점 | 프로그래밍할 때 고려해야 할 사항들이 많음. - 동기화(synchronization)에 주의해야 한다. - 교착상태(dead-lock)가 발생하지 않도록 주의해야 한다. - 각 쓰레드가 효율적으로 고르게 실행될 수 있게 해야 한다. |
단순히 멀티쓰레드 프로그램을 만드는건 어렵지 않다. 멀티쓰레드 프로그램이 효율적으로 잘 돌아가도록 짜는게 어려운 것.
728x90
반응형
'컴퓨터시스템' 카테고리의 다른 글
Context Switching 이란? (0) | 2022.09.05 |
---|---|
동기화를 위한 방법들 Spinlock / Mutex / Semaphore (0) | 2022.09.05 |
네트워크 기초 (0) | 2022.01.06 |
[네트워크] 네트워크 패킷 분석 및 Wireshark 설치 (mac) (0) | 2022.01.06 |
사용자 인증 방식 - OAuth, JSON Web Token(JWT) (0) | 2021.12.31 |