본문 바로가기
개발/기타

[개발 상식]프로세스(Process)와 스레드(Thread)

by MNMNMNMN 2023. 11. 3.
728x90

프로세스(Process)와 스레드(Thread)

프로세스(Process) 

컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 또는 OS에서 할당한 프로그램 작업 단위

특징

  • 독립성 : 각 프로세스는 독립된 메모리 공간을 가지며, 한 프로세스의 오류가 다른 프로세스에 영향을 끼치지 않음.
  • 통신 : 프로세스 간 통신이 필요한 경우, 복잡한 메커니즘이 필요(ex 소켓 등)
  • 생성 비용 : 프로세스를 생성하고 관리하는 데는 시스템 자원이 많이 필요하며, 많은 시간과 비용이 소요
  • 안정성 : 프로세스 간의 오류나 출돌이 발생해도 다른 프로세스는 영향을 받지 않아 시스템 전체의 안정성이 유지

스레드(Thread)

프로세스 내에서 할당된 실행 단위, 모든 프로세스에는 하나 이상의 스레드가 실행된다.

특징

  • 공유 메모리 : 스레드는 부모 프로세스의 메모리 공간을 공유 하므로, 스레드 간 데이터 공유가 간편
  • 통신 : 스레드는 동일한 프로세스 내에서 직접 통신 할 수 있어 간단히 데이터 공유가 가능
  • 생성 비용 : 스레드를 생성하고 관리하는 비용이 상대적으로 낮고 스레드 간 전환도 빠름
  • 안정성 : 스레드 간 데이터 공유와 동시성 관리에 주의가 필요, 오류가 발생하면 전체 프로세스에 영향을 끼칠 수 있음

 

728x90
반응형

댓글