갑자기 코딩이 생각나서 찾아봤습니다.
개발 중에 스레드를 관리합니다.
안드로이드의 경우 UI 스레드를 제대로 관리해야 합니다.
안그러면 앱 터질꺼같아요 ㅎㅎ 매일 보고 쓰는 단어인데 정확한 의미는 모를 것 같으니 한번 알아봅시다!
프로세스란 무엇인가
프로세스는 운영 체제에서 메모리 및 파일 핸들과 같은 다양한 리소스를 할당하는 독립적인 실행 단위입니다.
각 프로세스는 독립적으로 존재하며 자체 메모리 공간을 소유하고 운영합니다.
서로 다른 프로세스는 서로의 공간을 공유하지 않습니다.
그러나 프로세스 간에 데이터를 주고 받는 상황이 있는데 이를 위한 두 가지 방법이 있는데 하나는 프로세스 간에 공유 메모리 영역을 할당하는 것이고 다른 하나는 메시지를 전달하는 것이다.
– 프로세스 간 공유 메모리
여러 프로세스가 단일 메모리 공간을 공유합니다.
그러면 프로세스 간 데이터 공유가 가능해집니다.
– 문자 보내
각 프로세스는 가지고 있는 메시지 대기열을 사용하여 다른 프로세스로 데이터를 보냅니다.
구현하기 쉽고 안정적입니다.
그러나 메시지 전송이 느리고 대기열 크기가 제한되어 있다는 문제가 있습니다.
- 프로세스 간의 통신 노력이 높습니다.
- 프로세스 생성/종료로 인한 시스템 호출 오버헤드
# 오버헤드 – 무언가를 하기 위한 간접적인 시간
스레드는 무엇입니까
스레드는 프로세스 내에서 실행되는 실행 단위입니다.
즉, 하나의 프로세스에 여러 스레드가 생성될 수 있으며 각 스레드는 동일한 리소스를 공유합니다.
이러한 스레드를 사용하여 병렬 처리를 수행할 수 있습니다.
- 스레드가 공유 리소스를 사용하기 때문에 동기화 문제가 발생합니다.
- 한 스레드의 버그는 다른 스레드에 영향을 줄 수 있습니다.
- 성능 저하를 방지하려면 적절한 수의 스레드를 지정해야 합니다.
Android OS에서 프로세스와 스레드를 사용하는 방법은 무엇입니까?
Android에서는 IPC(프로세스 간 통신)를 사용하여 다양한 애플리케이션을 실행합니다.
여러 응용 프로그램을 사용하면 각각 고유한 스레드 환경에서 실행되는 여러 활동을 가질 수 있으며 모두 응용 프로그램당 단일 프로세스에서 실행됩니다.
스마트폰 – 애플리케이션당 각 프로세스(여러 앱) – 프로세스당 스레드
(네트워킹 수업시간에 배웠나봐요 .. 기억이 흐릿해서 재구성해봤습니다.
)