Java (자바)

[Java] Thread (1) - 스레드란 무엇인가?

Oscar:) 2022. 7. 8. 17:36

 

우리는 여러가지 흐름 속에 살고 있다.

 

프로그램 또한 마찬가지로,

그들만의 흐름이 있다.

 

이번 포스팅에서는 스레드의 기초적인 개념을 공부해보자.

 


 

스레드란?

 

사전적 의미로는 '실, 가닥, 흐름' 등 이다.

 

인터넷 용어로서는,

'프로그램 내에서 실행되는 흐름의 단위' 라고 할 수 있다.

 

 

우리가 사용하는 모든 프로그램에는 최소 한 개의 흐름이 작업을 수행한다.

즉, 최소 한 개의 스레드가 존재한다.

 

 


 

일반적으로 한 개의 프로세스는 한 가지 일을 한다.

 

하지만 스레드를 다룰 줄 안다면,

한 개의 프로세스가 두 개 이상의 일을 동시에 할 수 있게 된다.

 

 

*프로세스 : 실행중인, 동작하고 있는 프로그램

 

 

싱글 스레드, 멀티 스레드

 

싱글 스레드는,

말 그대로 단일 스레드이다.

한 개의 프로세스에 한 개의 스레드가 존재한다.

 

이해를 돕기 위해 그림을 그려봤다

 

초창기 전략 시뮬레이션 게임들을 떠올리면 이해하기 쉽다.

 

플레이 형식이 대부분 턴제로 진행되며

사용자가 어떤 행동을 취한 다음, 상대방도 어떤 행동을 취하는 느낌이다.

(또는, 한 턴 내에서 행동이 동시에 이루어진다.)

 

하나의 흐름 속에서만 프로그램이 진행되는 것이다.

 

 

그 당시에는 훌륭했을지 몰라도, 지금 와서 보면

플레이 형식이 다소 딱딱하고, 부자연스러운 느낌을 준다.

 

 


 

반면 멀티 스레드는,

한 개의 프로세스에 두 개 이상의 독립된 스레드가 존재한다.

 

우리가 이번 포스팅에서 공부해야할 부분이

바로 이 부분이다.

 

 

3개의 스레드가 있다는 것은,

3가지의 흐름이 존재한다는 것이다.

 

 

사용자가 아무런 행동을 취하지 않더라도

상대방은 자유롭게 움직일 수도 있고,

 

사용자가 프로그램을 플레이하는 동안

멋진 배경음악이 흘러나올 수도 있는 등

 

멀티 스레드의 개념이 도입되면서부터,

질 높은 프로그램들이 출시되었다.

 

 

우리는 멀티 스레드를 사용함으로써,

더욱 다양한 기능들에 대해 생각할 수 있게 되었다.

 

 


 

이번 포스팅에서는,

스레드의 기초적인 개념에 대해 알아보았다.

 

 

다음 포스팅에서는

멀티 스레드를 직접 사용해보며 공부해보겠다.