스레드 (thread)

이상해씨·2023년 8월 16일
0

스레드 (Thread)

목록 보기
1/2

스레드(Thread)가 뭐지?

스레드(Thread)

  • 프로그램의 실행 단위를 나타내는 작은 부분.
    여러 작업을 동시에 실행하기 위한 프로그래밍 구조.
  • 스레드는 병렬 처리에서 중요한 역할
  • 여러 스레드를 사용하여 여러 작업을 동시에 실행하거나, 하나의 작업을 병렬로 분할하여 각 스레드가 동시에 처리하도록 함.
  • 병렬처리(parall computing) 방법 중 하나

📌병렬처리
: 병렬 처리는 하나의 작업을 여러 부분으로 분할하여 동시에 처리함으로써 프로그램의 실행 속도를 향상시키는 기술.


특징

1. 경량성

  • 프로세스보다 더 작은 실행 단위.
  • 스레드 간 전환은 프로세스 간 전환보다 빠르며, 더 적은 메모리를 사용.

2. 공유 자원

  • 같은 프로세스 내의 스레드는 프로세스의 자원(메모리, 파일 등)을 공유하여 사용할 수 있음.
  • 데이터를 효율적으로 공유 및 통신.

3. 동시성

  • 여러 스레드가 동시에 실행되므로 멀티태스킹이 가능
  • 병렬 처리를 통해 성능 향상.

4. 효율성

  • 스레드는 프로세스 내에서 생성
  • 프로세스 간의 생성과 통신보다 오버헤드가 적음.

장단점

장점

1.병렬 처리
다수의 작업을 동시에 처리하여 프로그램의 성능을 향상.

2. 응답성 향상
여러 작업을 동시에 수행하여 응답성 향상.
(예: GUI 애플리케이션에서 화면 응답성 유지)
3. 멀티태스킹
다양한 작업을 동시에 실행하면서 유연하게 관리.

=> 복잡한 작업의 효율성 향상

단점

1. 경쟁 조건
여러 스레드가 동시에 같은 자원을 수정하려고 할 때 데이터 불일치 등의 문제가 발생 가능성.
2. 동기화
공유 자원에 접근할 때 스레드 간의 순서와 일관성을 유지하기 위한 동기화 기법 사용해야 함.
3. 데드락
스레드 간의 상호 대기 현상으로 인해 더 이상 진행되지 않는 상태가 발생 가능성.

=> 스레드간 관리와 동기화 주의

참고

  • ChatGPT
profile
공부에는 끝이 없다

0개의 댓글