이전 걸음에서는 람다식에 대해서 배웠습니다. 최근에 상당히 많이 사용되는 형태이기 때문에 잘 이해를 하고 사용을 하면 좋을 것 같습니다. 이번 걸음의 내용은 상당히 어려운 내용이지만 그래도 모르는 것보다는 조금이라도 알고 있는 것이 개발을 하실 때 도움이 될 수 있습니다. 끝까지 함께 하시면 좋을 것 같습니다.
쓰레드에 대해서 이번 걸음에서 같이 보도록 하겠습니다. 쓰레드는 Java에만 있는 것은 아니고 프로그램에서 상당히 많이 쓰입니다. 원론적인 내용이나 사용 방법을 숙지한다면 프로그램을 개발을 하는데 분명히 도움이 될 수 있습니다.
쓰레드가 무엇인지, 구현과 실행 방법, 실행과 제어 마지막으로 쓰레드를 사용하는 장점과 단점에 대해서 이번 걸음에서 같이 보도록 하겠습니다. 이번 걸음은 쓰레드의 기본적인 내용을 이야기 하고 그 다음 걸음부터 쓰레드를 좀 더 자세히 공부를 하도록 하겠습니다.
쓰레드란?
쓰레드는 프로세스 내에서 실제로 작업을 수행하는 주체를 의미합니다.
모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행합니다.
멀티스레드 프로세스는 두 개 이상의 스레드를 가지는 프로세스를 말합니다.
※ 쓰레드는 프로그램의 실행 흐름 단위입니다.
쓰레드의 구현방법
Thread 클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법이 있습니다.
Runnable 인터페이스를 구현하는 방법이 일반적입니다.
쓰레드 예제
public class MyThread extends Thread {
public void run() {
System.out.println("This is a thread running!");
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
public class MyRunnable implements Runnable {
public void run() {
System.out.println("This is a Runnable running!");
}
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
}
}
위와 같이 run Method에 실행 할 명령어를 정리해서 만들면 됩니다. Thread와 Runnable의 차이점은 Thread인 경우에는 바로 사용을 하면 되지만 Runnable 같은 경우에는 Thread 객체를 생성 할 때 Runnable 상속을 받은 객체를 넣어 사용을 하면 됩니다.
쓰레드 장단점
쓰레드를 사용하면 응답성 향상, 자원 효율, 코드 간결성 등의 이점이 있습니다.
쓰레드를 잘 못 사용을 하면 프로그램 전체의 문제를 야기를 할 수 있습니다.
쓰레드를 구현을 하기가 어렵습니다.
단점도 있지만 장점인 속도 향상이 좋기 때문에 거의 모든 상용화 프로그램에는 쓰레드를 사용을 하고 있습니다.