티스토리 뷰

쓰레드란?

OS에서 크롬을이용해 인터넷을 하면서 동시에 한글문서를 작성하기도하고 동영상을 시청하기도 한다. 동시에 여러 프로그램이 실행이되도 CPU는 시간을 분할하여 프로세스마다 우선권을 주어 작업을 처리하기 때문이다. 이런 운영체제에서 실행되는 하나의 프로그램 단위를 프로세스 라고한다. 쓰레드는 프로세스내에서 실행되는 세부 작업단위이다. 프로세스가 하나 이상의 쓰레드를 사용한다면 멀티 쓰레드라고 부르게 된다.


프로세스 = 운영체제에서 실행되는 하나의 프로그램 단위이다 (ex. 크롬, 한글, 엑셀)

쓰레드 = 프로세스내에서 실행되는 세부 작업단위



쓰레드 생성방법

Thread를 만드는 방법은 Thread 클래스를 상속받는 방법과 Runnable인터페이스를 구현하는 방법이 있다.

public class Thread1 extends Thread {
    
    public void run(){  // Thread의 run()메소드 오버라이드
        쓰레드 작업내용;
    }
}

 public class Main {
    public static void main(String[] args) {
        Thread1 thred = new Thread1();

        thred.start(); //쓰레드 시작
    }   
}
public class Thread2 implements Runnable {
 
    public void run(){  // Runable의 run()메소드 구현
        쓰레드 작업내용;
    }
 }
 public class Main {
    public static void main(String[] args) {
      
        Thread2 T2 = new Thread2();
      
        Thread thred = new Thread(T2);  //Thread2를 매개변수로 Thread클래스 생성

        thred.start(); //쓰레드 시작
    }   
}

쓰레드는 run()메소드를 오버라이드하지만 쓰레드시작은 start()메소드로 해야한다. 

자바에서 클래스는 다중상속을 허용하지 않는다. 첫번째 방법과 같이 Thread 클래스를 extends하는 방법은 다른 클래스를 상속 받을 수 없다. 하지만 Runnable 인터페이스를 implements하여 사용한 다면 다른 클래스를 상속받아 사용할 수 있다.




'Study ! > JAVA' 카테고리의 다른 글

JAVA 정리 6. 예외(Exception) try-catch-finally  (0) 2018.10.05
JAVA 정리 5. 인터페이스  (0) 2018.09.14
JAVA 정리 4-3. 추상클래스  (0) 2018.09.13
JAVA 정리 4-2. 다형성  (0) 2018.09.13
JAVA 정리 4-1. 상속과 Override  (0) 2018.09.13
댓글