오늘 공부한 내용
- 면접대비 2문항 공부
- 마지막 프로젝트 / 코드 리팩토
새로 알게된점
멀티프로세스 와 멀티쓰레드
멀티프로세스 : 여러 개의 독립적인 프로세스를 동시에 실행하는 것을 의미
- 독립된 메모리 공간: 각 프로세스는 운영체제에 의해 별도의 메모리 공간을 할당받습니다. 이는 프로세스 간의 메모리 충돌이 발생하지 않고, 안정성이 높아집니다.
- 독립적인 실행: 각 프로세스는 독립적으로 실행되며, 하나의 프로세스가 다른 프로세스에게 영향을 주지 않습니다.
- 높은 안정성: 프로세스 간의 독립성으로 인해 하나의 프로세스가 비정상적으로 종료되더라도 다른 프로세스에 영향을 미치지 않고 시스템을 유지할 수 있습니다.
- 메모리 사용량 증가: 각 프로세스는 독립적인 메모리 공간을 가지기 때문에 메모리 사용량이 증가할 수 있습니다.
- 프로세스 간 통신: 프로세스 간 통신은 별도의 메커니즘을 사용하여야 하며, 비교적 번거로울 수 있습니다.
멀티쓰레드 : 하나의 프로세스 내에서 여러 개의 쓰레드가 동시에 실행되는 특징
- 공유된 메모리 공간: 하나의 프로세스 내에서 스레드들은 같은 메모리 공간을 공유합니다. 이는 데이터 공유가 간편하고 효율적인 통신이 가능하게 합니다.
- 동시성 작업 처리: 멀티스레드는 여러 스레드가 동시에 작업을 처리하므로, 작업 처리 속도와 효율성이 향상될 수 있습니다.
- 스레드 간 협력: 스레드들은 같은 프로세스 내에서 협력하여 작업을 수행합니다. 이는 병렬 처리와 작업 분담에 유리합니다.
- 동기화 문제: 여러 스레드가 동시에 공유된 데이터에 접근할 때, 동기화 문제가 발생할 수 있습니다. 이를 위해 동기화 메커니즘이 필요합니다.
- 예외 처리 주의: 하나의 스레드에서 발생한 예외가 다른 스레드에 영향을 줄 수 있으므로, 예외 처리에 주의해야 합니다.
멀티 프로세스 는 독립된 메모리 공간 과 안정성을 강조 하며, 멀티 스레드는 공유된 메모리 공간과 작업 처리속도를 강조 한다.