Categories: Java 언어Korean

Java 총 정리[90. 쓰레드]

쓰레드

이전 걸음에서는 람다식에 대해서 배웠습니다. 최근에 상당히 많이 사용되는 형태이기 때문에 잘 이해를 하고 사용을 하면 좋을 것 같습니다. 이번 걸음의 내용은 상당히 어려운 내용이지만 그래도 모르는 것보다는 조금이라도 알고 있는 것이 개발을 하실 때 도움이 될 수 있습니다. 끝까지 함께 하시면 좋을 것 같습니다.

쓰레드에 대해서 이번 걸음에서 같이 보도록 하겠습니다. 쓰레드는 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 상속을 받은 객체를 넣어 사용을 하면 됩니다.

쓰레드 장단점

  • 쓰레드를 사용하면 응답성 향상, 자원 효율, 코드 간결성 등의 이점이 있습니다.
  • 쓰레드를 잘 못 사용을 하면 프로그램 전체의 문제를 야기를 할 수 있습니다.
  • 쓰레드를 구현을 하기가 어렵습니다.

단점도 있지만 장점인 속도 향상이 좋기 때문에 거의 모든 상용화 프로그램에는 쓰레드를 사용을 하고 있습니다.

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

5개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

5개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

5개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

6개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

6개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

6개월 ago

This website uses cookies.