스레드와 동시성
스레드(Thread)와 동시성(Concurrency)은 프로그래밍에서 중요한 개념이다.
멀티스레드 환경에서 프로그램이 동시에 여러 작업을 수행할 수 있도록 하는 기술이다.
먼저 스레드부터 알아보자
스레드(Thread)
- 스레드란?
- 스레드는 프로세스 내에서 실행되는 작은 실행 단위로, 프로세스 내의 주소 공간과 시스템 자원을 공유한다.
- 하나의 프로세스에는 여러 개의 스레드가 있을 수 있다.
- 프로세스와 스레드의 차이
- 프로세스는 독립적인 실행 단위로, 각 프로세스는 자신만의 주소 공간을 가진다.
- 스레드는 프로세스 내에서 실행되는 각각의 흐름으로, 프로세스의 자원을 공유한다.
- 스레드의 장점
- 자원 공유 : 스레드 간에 자원을 쉽게 공유할 수 있다.
- 응답성 향상 : 여러 작업을 동시에 처리하여 응답성을 향상시킬 수 있다.
동시성과 병렬성은 겉으로 보기에 동시에 여러 작업이 일어나는 것처럼 보이지만 차이가 있다.
동시성에 대해 알아보자
동시성(Concurrency)
- 동시성이란?
- 동시성은 여러 작업이 동시에 진행되는 것을 의미한다.
- 멀티스레드, 멀티프로세스, 이벤트 기반 프로그래밍 등의 기술을 사용해서 동시성을 구현할 수 있다.
- 동시성과 병렬성 차이
- 동시성은 여러 작업이 빠르게 번갈아 가며 실행되는 것을 의미한다.
- 병렬성은 여러 작업이 동시에 실행되는 것을 의미한다.
- 멀티스레딩과 동시성
- 멀티스레딩은 동시성을 구현하는 방법 중 하나이다.
- 여러 스레드가 동시에 실행되어 작업을 처리하므로, 동시성을 실현할 수 있다.
- 동시성의 장점
- 응답성 향상 : 여러 작업을 동시에 처리해서 응답성이 향상된다.
- 자원 효율성 : 여러 작업이 동시에 실행되면서 시스템 자원을 효율적으로 활용할 수 있다.
- 주의사항
- 공유 자원에 대한 동기화
- 여러 스레드가 공유 자원에 접근할 때 동기화가 필요하다.
- 동기화를 통해 상호배제를 구현하여 데이터 일관성을 보장할 수 있다.
- 경쟁 조건과 데드락
- 경쟁 조건(Race Condition)과 데드락(Deadlock)은 멀티스레딩 환경에서 주의해야 할 문제이다.
- 경쟁 조건은 여러 스레드가 동시에 공유 자원을 수정할 때 발생할 수 있는 문제이고, 데드락은 스레드 간의 무한 대기 상태이다.
- 공유 자원에 대한 동기화
Reference
https://beststar-1.tistory.com/24
스레드(Thread) - 멀티스레드의 동시성(Concurrency)과 병렬성(Parallelism)
멀티스레드의 동시성(Concurrency)과 병렬성(Parallelism) 멀티스레드는 동시성 방식이나 병렬성 방식으로 수행된다. 동시성(Concurrency) 싱글 코어에서 멀티스레드를 동작시키기 위한 방식으로, 멀티 태
beststar-1.tistory.com
'지식 정리' 카테고리의 다른 글
운영체제에서의 입출력(I/O) 관리 (0) | 2024.01.22 |
---|---|
프로세스 간 통신 (0) | 2024.01.19 |
프로세스란? (0) | 2024.01.15 |
OS의 일반적인 작동 원리 (0) | 2024.01.12 |
호스팅이란? (0) | 2024.01.11 |