멀티 스레딩에 대해 알아보자

김태영·2024년 8월 22일
0

TIL

목록 보기
69/70
post-thumbnail

오늘 공부한 것

- 최종 프로젝트 SA 작성
- 최종 프로젝트 팀원들과 아이디어 회의

멀티 스레딩은 언제 사용할까?

  • 하나의 프로그램에서 동시에 여러 작업을 수행해야 할 때 사용한다.
    • ex. 워드 프로그램에서 이미지 파일을 업로드하며 사용자 입력을 처리하고 철자 검사가 수행된다.

이런 점은 주의해야 한다!

  • 스레드는 데이터와 힙 영역을 공유하기 때문에 한 스레드가 다른 스레드에서 사용 중인 변수나 자료구조에 접근해 엉뚱한 값을 읽어오거나 수정할 수 있다.
    → 동기화를 통해 스레드의 작업 처리 순서와 공유 자원에 대한 접근을 컨트롤 할 수 있다. (ex. 세마포어, 뮤텍스)

  • 각 스레드가 서로 교체될 때 Context Switching이 발생하는데, 이 Context Switching에 걸리는 시간이 커지면 커질수록 멀티 스레딩의 효율은 저하된다. 오히려 많은 양의 단순한 계산은 싱글 스레드로 동작하는 것이 더 효율적일 수도 있다.

    ❇️ Context Switching?
    현재까지의 작업 상태나 다음 작업에 필요한 각종 데이터를 저장하고 읽어오는 작업

  • 하나의 스레드에서 문제가 생긴 경우 다른 스레드들도 같이 영향을 받아 프로그램이 죽을 수 있다.

profile
화이팅

0개의 댓글