스레드(Thread) 단위
스레드
원룸 3개보다 3개의 방이 있는 아파트에서 공유할수있는건 공유하며 사용,
(b) 3개의 스레드가 하나의 프로세스에 의해 실행=외부에서는 3개의 프로세스가 동시에 실행되는 것처럼 보임
스레드(Thread)는 프로세스 내에서 실행되는 작업의 단위로, 프로세스 내에서 독립적으로 실행될 수 있는 가장 작은 단위입니다. 스레드는 프로세스 내에서 각각의 스택을 가지며, 코드, 데이터 및 힙 영역을 공유합니다. 이는 스레드 간의 데이터 공유 및 통신이 간편하며, 새로운 스레드를 생성할 때 기존 프로세스의 자원을 재사용하여 오버헤드를 줄일 수 있습니다.
각 스레드는 별도의 실행 경로를 가지며, 동시에 실행될 수 있습니다. 이를 통해 여러 작업을 동시에 처리할 수 있으며, 멀티코어 CPU를 활용하여 성능을 향상시킬 수 있습니다. 또한, 스레드 간의 통신은 공유 메모리를 이용하여 간편하게 처리할 수 있습니다.
스레드를 사용하면 병렬성을 쉽게 구현할 수 있으며, 멀티태스킹에서도 유용하게 사용됩니다. 예를 들어, GUI 애플리케이션에서는 사용자 인터페이스를 담당하는 스레드와 백그라운드 작업을 수행하는 스레드를 분리하여 병렬적으로 처리할 수 있습니다.
하지만 스레드를 사용할 때에는 여러가지 주의할 점이 있습니다. 공유 메모리를 이용하기 때문에 스레드 간에 발생하는 경합 상태(Race Condition)나 데드락(Deadlock) 등의 문제가 발생할 수 있습니다. 따라서 스레드를 안전하게 사용하기 위해서는 적절한 동기화 기법을 사용하고, 멀티스레딩 환경에서 발생할 수 있는 문제를 예방하도록 주의해야 합니다.
스레드: 프로세스안에서 공유할수 있는건 공유하고 필요한건 따로 나눠 사용하는 개념
자신만의 고유ID, 레지스터, 스택, 프로그램카운터를 스레드별로 가지고 힙,데이타,코드등 기타 자원은 프로세스내 다른 스레드와 공유한다
(3명이 지도 3개들필요없이 하나만 들어도 되는것처럼 공유)