스레드(Thread)란? – 쓰레드 개념 알아보기

스레드(Thread)란? – 쓰레드 개념 알아보기

스레드(Thread)는 프로그램 실행에 관해 다룰때 중요한 개념이라 할 수 있는데요, 이번 글에서는 스레드의 개념과 중요성에 대해 알아보겠습니다.

스레드란?

스레드는 일반적으로 하나의 프로세스 내에서 수행되는 실행 흐름이라고도 할 수 있는데요(다중 스레드가 가능), 모든 프로세스는 기본적으로 하나의 스레드, 즉 메인 스레드를 가지고 있으며 이는 UI 작업 및 이벤트 처리 등을 담당하며 이러한 스레드를 UI 스레드 또는 메인 스레드라고도 합니다.

스레드의 중요성

만약, 메인 스레드에는 작업 시간이 오래 걸리는 작업을 할 때는 주의가 필요한데요, 메인 스레드가 응답하지 못하는 상태에 빠지면 프로그램은 ‘응답 없음’ 상태에 빠질 수 있습니다(무한대기) 이러한 상황을 피하기 위해 추가로 스레드를 사용하여 작업을 분리하는 것이 중요합니다(이것이 바로 다중스레드) 추가 스레드에서는 UI와 관련된 함수를 직접 사용하지 않고, 메인 스레드에 원하는 작업을 요청 할 수 있습니다.

스레드 추가 및 사용

예를들어 자바(Java)에서 스레드를 추가할 때는 Thread 클래스를 사용하며, Runnable 인터페이스를 구현하여 run 메소드를 정의합니다(시스템(서버)를 가동시키면 타이머가 돌며 보통 일정시간 간격으로 자동으로 run 메소드를 실행하는 프로그램을 많이 사용합니다). 예를 들어, 네트워크 프로그램에서 데이터 수신 작업은 메인 스레드가 수행하면 응답 없음 상태에 빠질 수 있으므로 추가 스레드에서 이 작업을 수행하는 것이 좋습니다. 이때 수신한 데이터를 UI 컨트롤에 출력하려면 post 메소드를 사용하여 메인 스레드로 작업을 요청하여 처리 할 수 있습니다.

맺으며

위 내용들과 같이, 스레드는 자바 뿐만 아니라 여러 다양한 응용프로그램에서 다중 작업을 효율적으로 처리하는데 사용되는 핵심 요소입니다. 메인 스레드와 추가 스레드의 역할을 분명히 이해하고, 긴 작업들을 분리하여 안정적인 사용자 경험을ㅅ 제공한다면 안정적으로 프로그램을 관리 하실 수 있으실 겁니다.

이전 글 – 자바(Java)의 다양한 버전에 대해 알아보자 (Java SE, Java EE, Java ME, JavaFX) 2023

이전 글 – 2023 메타의 야심작 스레드(Threads)란? – 스레드의 기능, 스레드 용어 총정리

Leave a Comment