[JAVA] 개념 정리 5

NaSC·2022년 12월 15일
0

JAVA 기본개념

목록 보기
5/6

1. 프로세스(process)

  • 프로세스란 단순히 실행 중인 프로그램이다.
  • 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말합니다.
  • 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성된다.

2. 스레드(thread)

  • 스레드란 프로세스 내에서 실제로 작업을 수행하는 주체를 의미.
  • 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행함.
  • 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 함.

2-1. 스레드의 생성과 실행

Runnable 인터페이스를 구현하는 방법

class ThreadWithRunnable implements Runnable {
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getName()); // 현재 실행 중인 스레드의 이름을 반환함.
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Thread 클래스를 상속받는 방법

class ThreadWithClass extends Thread {
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println(getName()); // 현재 실행 중인 스레드의 이름을 반환함.
            try {
                Thread.sleep(10);          // 0.01초간 스레드를 멈춤.
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

두 방법 모두 스레드를 통해 작업하고 싶은 내용을 run() 메소드에 작성하면 됨.

Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없으므로, 일반적으로 Runnable 인터페이스를 구현하는 방법으로 스레드를 생성

참고 : http://www.tcpschool.com/java/java_thread_concept

profile
데이터엔지니어 😘

0개의 댓글