process
운영체제로 부터 시스템 자원을 할당받아서
메모리에 올라와 실행되고 있는 프로그램의 인스턴스
각프로세스는 Code, Data, Stack, Heap 영역으로 구분되며
독립된 메모리영역을 할당 받으며 , 기본적으로 하나의 메인 쓰레드를 가진다
독립된 메모리 영역을 할당 받기 때문에 다른 프로세스의 변수나 자료구조에 접근 하지 못한다.
다른 프로세스에 접근하기 위해 IPC(inter-process-commnication) 를 사용해야함
* IPC 예시 파이프 , 파일 , 소켓 등을 이용한 통신
thread
프로세스가 할당받은 자원을 이용한 프로세스 내에서 동작되는 실행의 단위
프로세스 내에서 stack 만 할당받으며 Heap 영역은 공유된다.
java thread
자바에는 프로세스가 존재하지 않고, thread 만 존재한다.
JVM에 의해 스케줄되는 실행단위 코드블록
multi process
장점 - 프로세스 작업중 문제가 발생되더라도 다른 프로세스에 영향을 주지않는다.
단점 - 독립된 메모리 영역을 할당받기 때문에 프로세스 끼리의 데이터 공유에 많은 자원이 소모된다.
multi thread
장점 - thread 간의 자원공유로 통신의 부담이적음
단점 - 동기화 문제를 잘 해결해야한다.
하나의 thread 에 문제가 발생하면 전체 프로세스가 영향을 받는다.
'소소한 개발이야기' 카테고리의 다른 글
heroku를 이용한 maven 프로젝트 배포 (0) | 2019.05.31 |
---|---|
점심메뉴 크롤링 및 알림 제작후기.. (1) | 2019.05.13 |
Eclipse에서 Intellij 로 갈아탄 사연.. (1) | 2019.04.26 |