프로세스와 스레드의 차이는

갑자기 코딩이 생각나서 찾아봤습니다.

개발 중에 스레드를 관리합니다.

안드로이드의 경우 UI 스레드를 제대로 관리해야 합니다.

안그러면 앱 터질꺼같아요 ㅎㅎ 매일 보고 쓰는 단어인데 정확한 의미는 모를 것 같으니 한번 알아봅시다!

프로세스란 무엇인가

프로세스는 운영 체제에서 메모리 및 파일 핸들과 같은 다양한 리소스를 할당하는 독립적인 실행 단위입니다.

각 프로세스는 독립적으로 존재하며 자체 메모리 공간을 소유하고 운영합니다.

서로 다른 프로세스는 서로의 공간을 공유하지 않습니다.

그러나 프로세스 간에 데이터를 주고 받는 상황이 있는데 이를 위한 두 가지 방법이 있는데 하나는 프로세스 간에 공유 메모리 영역을 할당하는 것이고 다른 하나는 메시지를 전달하는 것이다.

– 프로세스 간 공유 메모리

여러 프로세스가 단일 메모리 공간을 공유합니다.

그러면 프로세스 간 데이터 공유가 가능해집니다.

– 문자 보내

각 프로세스는 가지고 있는 메시지 대기열을 사용하여 다른 프로세스로 데이터를 보냅니다.

구현하기 쉽고 안정적입니다.

그러나 메시지 전송이 느리고 대기열 크기가 제한되어 있다는 문제가 있습니다.

  • 프로세스 간의 통신 노력이 높습니다.

  • 프로세스 생성/종료로 인한 시스템 호출 오버헤드

# 오버헤드 – 무언가를 하기 위한 간접적인 시간

스레드는 무엇입니까

스레드는 프로세스 내에서 실행되는 실행 단위입니다.

즉, 하나의 프로세스에 여러 스레드가 생성될 수 있으며 각 스레드는 동일한 리소스를 공유합니다.

이러한 스레드를 사용하여 병렬 처리를 수행할 수 있습니다.

  • 스레드가 공유 리소스를 사용하기 때문에 동기화 문제가 발생합니다.

  • 한 스레드의 버그는 다른 스레드에 영향을 줄 수 있습니다.

  • 성능 저하를 방지하려면 적절한 수의 스레드를 지정해야 합니다.

Android OS에서 프로세스와 스레드를 사용하는 방법은 무엇입니까?

Android에서는 IPC(프로세스 간 통신)를 사용하여 다양한 애플리케이션을 실행합니다.

여러 응용 프로그램을 사용하면 각각 고유한 스레드 환경에서 실행되는 여러 활동을 가질 수 있으며 모두 응용 프로그램당 단일 프로세스에서 실행됩니다.

스마트폰 – 애플리케이션당 각 프로세스(여러 앱) – 프로세스당 스레드

(네트워킹 수업시간에 배웠나봐요 .. 기억이 흐릿해서 재구성해봤습니다.

)