ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스레드 (Thread)
    Study/개발 용어 2021. 1. 15. 11:33

     

     

     

    스레드란?

     

    스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.

    프로세스(prosess)는 알아도 스레드는 어렵다. 프로세스는 운영체제에서 프로그램이 실행될 때 흐름의 단위로 알고있다. 스레드란 프로세스 보다 작은 단위로 프로세스 내에서 실행되는 흐름의 단위라고 한다. 

     

     

    프로세스: 각각의 은행 지점
    스레드: 은행 지점 하나에 속한 고객 창구 여러 개

     

    즉, 이런 형태로 생각하면 개략적인 이해가 쉽다. (나무위키 인용)

     

     

     


    스레드와 프로세스의 차이

     

    그렇다면 프로세스보다 더 작은 단위의 흐름을 정의하는 용어가 왜 필요할까? 프로세스는 각각 독립적인 실행 흐름이다. 프로세스를 강제종료해도 다른 프로세스에는 영향이 없다. 그러나 한 프로세스 안의 여러개의 스레드는 연계되어 있다.

     

     

     


    단일스레드와 멀티스레드

     

    단일스레드 / 멀티스레드도 자주 듣게 되는 용어다. 하나의 프로세스에 하나의 스레드가 있다면 단일스레드라 할 수 있다. 멀티 스레드는 한 프로세스를 다수의 실행 단위(스레드)로 나누어 실행하는 방식이다. 

     

    단일 스레드의 장점은 스레드가 하나이기 때문에 자원을 다른 스레드와 공유할 필요가 없다는 점이다. 이렇게 단순한 구조이기 때문에 멀티 스레드 방식보다 빠르다. 단점은 CPU를 전부 활용하지 못한다. (이 부분은 잘 모르겠다)

     

    멀티스레드의 장점은 새로운 작업이 필요할 때 새로운 프로세스를 생성하는 것이 아닌 기존 프로세스에 스레드를 추가하는 방식이기에 단일 스레드 방식보다 빠를 수 있다는 것이다. 또한 프로세스의 자원을 여러개의 스레드가 공유해 효율적으로 운영이 가능하다. 프로세스들끼리의 문맥 교환보다 스레드끼리의 문맥 교환이 빠르다는 점 또한 장점이다. 그러나 많은 자원을 필요로 하고, 단일 스레드로 실행 중일 때는 실행시간이 오히려 지연되는 단점이 있다.

     

     

     

     

     

     

    댓글

Designed by Tistory.