우리는 여러가지 흐름 속에 살고 있다.
프로그램 또한 마찬가지로,
그들만의 흐름이 있다.
이번 포스팅에서는 스레드의 기초적인 개념을 공부해보자.
스레드란?
사전적 의미로는 '실, 가닥, 흐름' 등 이다.
인터넷 용어로서는,
'프로그램 내에서 실행되는 흐름의 단위' 라고 할 수 있다.
우리가 사용하는 모든 프로그램에는 최소 한 개의 흐름이 작업을 수행한다.
즉, 최소 한 개의 스레드가 존재한다.
일반적으로 한 개의 프로세스는 한 가지 일을 한다.
하지만 스레드를 다룰 줄 안다면,
한 개의 프로세스가 두 개 이상의 일을 동시에 할 수 있게 된다.
*프로세스 : 실행중인, 동작하고 있는 프로그램
싱글 스레드, 멀티 스레드
싱글 스레드는,
말 그대로 단일 스레드이다.
한 개의 프로세스에 한 개의 스레드가 존재한다.
초창기 전략 시뮬레이션 게임들을 떠올리면 이해하기 쉽다.
플레이 형식이 대부분 턴제로 진행되며
사용자가 어떤 행동을 취한 다음, 상대방도 어떤 행동을 취하는 느낌이다.
(또는, 한 턴 내에서 행동이 동시에 이루어진다.)
하나의 흐름 속에서만 프로그램이 진행되는 것이다.
그 당시에는 훌륭했을지 몰라도, 지금 와서 보면
플레이 형식이 다소 딱딱하고, 부자연스러운 느낌을 준다.
반면 멀티 스레드는,
한 개의 프로세스에 두 개 이상의 독립된 스레드가 존재한다.
우리가 이번 포스팅에서 공부해야할 부분이
바로 이 부분이다.
3개의 스레드가 있다는 것은,
3가지의 흐름이 존재한다는 것이다.
사용자가 아무런 행동을 취하지 않더라도
상대방은 자유롭게 움직일 수도 있고,
사용자가 프로그램을 플레이하는 동안
멋진 배경음악이 흘러나올 수도 있는 등
멀티 스레드의 개념이 도입되면서부터,
질 높은 프로그램들이 출시되었다.
우리는 멀티 스레드를 사용함으로써,
더욱 다양한 기능들에 대해 생각할 수 있게 되었다.
이번 포스팅에서는,
스레드의 기초적인 개념에 대해 알아보았다.
다음 포스팅에서는
멀티 스레드를 직접 사용해보며 공부해보겠다.
'Java (자바)' 카테고리의 다른 글
[Java] Thread (3) - 스레드 정지, 멈춤, 제어 / stop(), interrupt() (1) | 2022.07.08 |
---|---|
[Java] Thread (2) - 스레드 사용 예제 : 타이머 구현 / isAlive() 메서드 (0) | 2022.07.08 |
[Java] 자바 랜덤 함수 - Random 클래스 (0) | 2022.07.06 |
[Java] 클래스 - (2) 클래스, 생성자와 메서드 (0) | 2022.07.06 |
[Java] 클래스 - (1) 객체 지향적 프로그래밍 (0) | 2022.07.06 |