Computer Science의 Process와 Thread

Process

Process는 컴퓨터에서 실행되는 프로그램의 인스턴스.

각각의 프로세스는 메모리, 파일, 네트워크 연결 등의 시스템 자원을 할당받아 실행.

ex) 웹 브라우저를 실행하면 웹 브라우저의 프로세스가 하나 생성. 이렇게 각각의 프로세스는 독립적으로 실행됨. 다른프로세스의 변수나 자료구조에 접근할 수 없음.(다른프로세스의 자원에 접근하려면 IPC를 사용해 통신하여야 함.

Thread

프로세스 내에서 실행되는 실행의 단위

스레드는 프로세스 내에서 stack만 따로 할당받음. Code,Data, Heap을 공유함.

Process와 Thread의 차이점

멀티thread의 주의할 점

동기화 문제

동기화 문제를 해결하기 위하여 Synchronized를 사용하여 다른 thread가 침범하지 못하도록 대기를 검.

설계를 잘못하면 모두 대기에 걸려서 Deadlock에 빠질수 있으니 주의