적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

컴퓨터시스템

thread란? + 멀티쓰레드의 장단점

hongssup_ 2022. 5. 13. 12:41
반응형

Process & Thread

프로세스 : 실행 중인 프로그램. 자원(resources. 메모리, CPU ...) + 쓰레드로 구성

쓰레드 : 프로세스 내에서 실제 작업을 수행. 

모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 

프로세스 : 쓰레드 = 공장 : 일꾼

싱글 쓰레드 프로세스 = 자원 + 쓰레드

멀티 쓰레드 프로세스 = 자원 + 쓰레드 + 쓰레드 + ... + 쓰레드

여러 작업을 나눠 동시에 수행 가능. 보다 효율적으로 처리할 수 있다. 

 

대부분의 프로그램은 멀티쓰레드로 작성되어 있다. 

 

멀티쓰레드의 장단점

장점 - 시스템 자원을 보다 효율적으로 사용할 수 있따. 
- 사용자에 대한 응답성(responseness)이 향상된다.
- 작업이 분리되어 코드가 간결해진다. 
단점 프로그래밍할 때 고려해야 할 사항들이 많음. 
- 동기화(synchronization)에 주의해야 한다.
- 교착상태(dead-lock)가 발생하지 않도록 주의해야 한다.
- 각 쓰레드가 효율적으로 고르게 실행될 수 있게 해야 한다. 

 

단순히 멀티쓰레드 프로그램을 만드는건 어렵지 않다. 멀티쓰레드 프로그램이 효율적으로 잘 돌아가도록 짜는게 어려운 것. 

728x90
반응형