티스토리 뷰

it

스레드(Thread) 단위

ITs Story biaos 2023. 5. 1. 23:00

스레드(Thread) 단위





스레드



원룸 3개보다 3개의 방이 있는 아파트에서 공유할수있는건 공유하며 사용,


(b) 3개의 스레드가 하나의 프로세스에 의해 실행=외부에서는 3개의 프로세스가 동시에 실행되는 것처럼 보임



스레드(Thread)는 프로세스 내에서 실행되는 작업의 단위로, 프로세스 내에서 독립적으로 실행될 수 있는 가장 작은 단위입니다. 스레드는 프로세스 내에서 각각의 스택을 가지며, 코드, 데이터 및 힙 영역을 공유합니다. 이는 스레드 간의 데이터 공유 및 통신이 간편하며, 새로운 스레드를 생성할 때 기존 프로세스의 자원을 재사용하여 오버헤드를 줄일 수 있습니다.


각 스레드는 별도의 실행 경로를 가지며, 동시에 실행될 수 있습니다. 이를 통해 여러 작업을 동시에 처리할 수 있으며, 멀티코어 CPU를 활용하여 성능을 향상시킬 수 있습니다. 또한, 스레드 간의 통신은 공유 메모리를 이용하여 간편하게 처리할 수 있습니다.


스레드를 사용하면 병렬성을 쉽게 구현할 수 있으며, 멀티태스킹에서도 유용하게 사용됩니다. 예를 들어, GUI 애플리케이션에서는 사용자 인터페이스를 담당하는 스레드와 백그라운드 작업을 수행하는 스레드를 분리하여 병렬적으로 처리할 수 있습니다.


하지만 스레드를 사용할 때에는 여러가지 주의할 점이 있습니다. 공유 메모리를 이용하기 때문에 스레드 간에 발생하는 경합 상태(Race Condition)나 데드락(Deadlock) 등의 문제가 발생할 수 있습니다. 따라서 스레드를 안전하게 사용하기 위해서는 적절한 동기화 기법을 사용하고, 멀티스레딩 환경에서 발생할 수 있는 문제를 예방하도록 주의해야 합니다.


스레드: 프로세스안에서 공유할수 있는건 공유하고 필요한건 따로 나눠 사용하는 개념


자신만의 고유ID, 레지스터, 스택, 프로그램카운터를 스레드별로 가지고 힙,데이타,코드등 기타 자원은 프로세스내 다른 스레드와 공유한다


(3명이 지도 3개들필요없이 하나만 들어도 되는것처럼 공유)

'it' 카테고리의 다른 글

SRT 스케줄링 (Shortest Remaining Time)  (0) 2023.05.03
다단계 큐 스케줄링  (0) 2023.05.02
프로세스(Process)  (0) 2023.04.30
병행프로세스  (0) 2023.04.29
세마포어(semaphore)  (0) 2023.04.28
댓글