스레드와 멀티태스킹
멀티태스킹
멀티태스킹(multitasking)이란 멀티(multi) + 태스킹(tasking)의 합성어로 다수의 작업을 동시에 처리하는 것을 말합니다.
멀티태스킹 프로그램
간단한 응용프로그램은 보통 하나의 작업(태스크)만 하는 경우가 대부분이지만, 큰 규모의 응용프로그램은 많은 경우 여러 작업(태스크)을 동시에 실행합니다.

스래드와 멀티태스크
컴퓨터의 스레드(thread)는 thread of control의 준말로서 프로그램 코드를 실행하는 하나의 실 혹은 작업입니다. 하나의 실로 하나의 바느질밖에 없듯이, 하나의 스레드로 하나의 작업밖에 처리할 수 없습니다.
스레드는 운영체제나 JVM에서 테스크(작업)를 실행하는 단위로서, 운영체제나 JVM에 의해 관리되는 단위입니다. JVM은 하나의 테스크(작업)를 실행하기 위해 하나의 스레드를 만들고, 스레드로 하여금 테스크 코드를 실행하도록 합니다.


멀티테스킹과 멀티스레딩
멀티프로세싱(multi-processing)은 하나의 응용프로그램을 여러 개의 프로세스(process)를 구성하여 각 프로세스가 하나의 작업(태스크)을 처리하도록 하는 기법입니다. 각 프로세스는 고유한 메모리 영역을 보유하고 독립적으로 실행됩니다.
이런 문제점을 개선하기 위해 제안된 방법이 멀티스레딩(multi-threading)입니다.
멀티스레딩은 하나의 응용프로그램을 동시처리가 가능한 여러 작업(코드)으로 분할하고 작업의 개수만큼 스래드를 생성하여 각 스레드로 하여금 하나의 작업을 처리하도록 하는 기법입니다. 모든 스레드는 응용프로그램 내의 자원과 메모리를 공유하므로 통신에 따른 오버헤드가 작고, 스레드 사이의 문맥 교환 시 소요되는 작업량이 많아 문맥 교환이 빠른 장점이 있습니다. 윈도우, 리눅스 등 많은 운영체제들이 멀티프로세싱을 지원하고 있지만 멀티스레딩을 기본으로 하고 있습니다.
멀티스레딩 활용 분야
멀티스레딩은 응용프로그램이 다수의 스레드를 가지고 다수의 작업을 동시에 처리함으로써, 한 스레드가 대기하는 동안 다른 스레드를 실행하여 시간 지연을 줄이고 자원의 비효율적 사용을 개선합니다.
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
| Thread 클래스를 상속받아 스레드 만들기 (1) | 2025.08.10 |
|---|---|
| 자바의 멀티스레딩 (7) | 2025.08.07 |
| 스윙의 페인팅 메커니즘 (2) | 2025.08.02 |
| 클리핑(Clipping) (3) | 2025.07.30 |
| 이미지 그리기 (4) | 2025.07.27 |