프로세스와 쓰레드(process & thread)
프로세스: 실행 중인 프로그램, 자원(resources)과 쓰레드로 구성
쓰레드: 프로세스 내에서 실제 작업 수행, 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다

싱글 쓰레드 프로세스 = 자원 + 쓰레드
멀티 쓰레스 프로세스 = 자원 + 쓰레드 + 쓰레드 + ...
하나의 새로운 프로세스를 생성하는 것보다, 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다
프로세스(2) 쓰레드(1) => 쓰레드 2개 vs 프로세스(1) 쓰레드(2) => 쓰레드 2개
같은 쓰레드 개수라면 멀티쓰레드를 사용하는 것이 효율적이다
멀티쓰레드의 장단점
대부분의 프로그램이 멀티쓰레드로 작성되어 있지만 멀티쓰레드 프로그래밍이 장점만 있는 것은 아니다
장점 | 단점 |
시스템 자원을 보다 효율적으로 사용할 수 있다 사용자에 대한 응답성(reponseness)이 향상된다 작업이 분리되어 코드가 간결해진다 |
동기화(synchronization)에 주의해야한다 교착상태(dead-lock)가 발생하지 않도록 주의해야 한다 각 쓰레드가 효율적으로 고르게 실행될 수 있게 해야한다 |
반응형
'이것이 자바다 > JAVA3' 카테고리의 다른 글
main 쓰레드 (0) | 2023.08.03 |
---|---|
쓰레드의 구현과 실행 (0) | 2023.08.02 |
애너테이션 타입 정의하기, 애너테이션의 요소 (0) | 2023.08.01 |
메타 애너테이션 (0) | 2023.08.01 |
Annotation(애너테이션) @ (0) | 2023.07.31 |