개발/SPRING & JPA

Process Vs Thread

Leedo1982 2021. 5. 30. 11:51

process

컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
운영체체로부터 시스템 자원을 할당받는 작업의 의미

thread

프로세스 내에서 실행되는 여러 흐름의 단위
프로세스가 할당받은 자원을 이용하는 실행의 단위

multi preocess

하나의 응용프로그램을 여러 개의 프로세스로 구성하여 하나의 작업을 처리하도록하는것
장 : 여러개의 프로세스중 하나에 문제가 발생하면 그 프로세스만 죽고 다른 영향이 확산되지 않는다
단 : contextswitching 에서의 오버헤드

multi thread

하나의 응용프로그램을 여러개의 스로드로 구성하고 하나의 작업을 처리하도록하는 것
장 : 시스템 자원소모 감소, 시스템 처리량 증가
단 : 주의깊은 설계, 디버깅 까다롭다. 자원공유 문제 발생

멀티 프로세스 대신 멀티 쓰레드를 사용하는 이유

자원의 효율성 증대 : 쓰레드는 프로세스 내의 메모리를 공유하기 때문에 독립적인 프로세스와 달리 쓰레드간 데이터를 주고 받는 것이 간단해지고시스템 자원소모가 줄어든다
처리비용감소 및 응답시간 단축 : 프로세스간 통신보다 쓰레드간 통신의 비용이 적으므로 작업들 간의 통신의 부담이 줄어든다(쓰레드는 stack 영역을 제외한 모든 메모리를 공유), 프로레스간 전환속도보다 쓰레드간의 전화속도가 빠르다.

'개발 > SPRING & JPA' 카테고리의 다른 글

JVM 구조  (0) 2021.05.30
[Spring] bean lifecycle  (0) 2021.05.25
[토비] 8.4 스프링의 기술  (0) 2021.05.23
[Spring-Core] Bean Overview  (0) 2021.04.19
[Spring-Core] 1.2 Container Overview  (0) 2021.04.16