JAVA

[JAVA] 쓰레드(Thread) -1

HJLIM 2020. 10. 3. 12:22

Thread

-프로세스(Process) : 실행중인 프로그램

-멀티 태스킹(Multi Tasking) : 프로세스를 동시에 여러개 처리하는 것.

-쓰레드(Thread) : 실행 쓰레드(Thread of execution)을 의미.

이런 실행 쓰레드가 여러 개가 동작할 경우를 멀티 쓰레딩이라고 한다.(실행 단위)

하나의 프로세스 안에서 여러 개의 실행 단위를 만들 수 있으며 이러한 실행 단위들을 쓰레드로 사용할 수  있으며

이것을 멀티 쓰레딩(동시 다발적으로 실행)이라고 한다.

 

 

Thread 사용하기 

 

1)java.lang.Thread 클래스 사용

 

Thread 클래스를 상속받은 후 해당 쓰레드에서 지원하고 싶은 코드를 run()메소드로 오버라이딩한다.

해당 클래스 인스턴스를 생성한 후 클래스 객체의 start()메소드를 호출한다. 

 

스레드 상속 -> 객체 생성 - > 오버라이딩

 

ex)

public class FirstThread extends Thread{
public void run(){
	while(true){
    	System.out.println("쓰레드 테스트 .." );
        }
     }
public static void main(String[] args){
	FirstThread thread = new FirstThread();
    thread.start();
    }
}

    

2) Runnable 인터페이스 사용

 

Runnable 인터페이스를 구현한 클래스를 정의하고 구현하고 싶은 코드를 run()메소드에서 오버라이딩 한다.

클래스 객체를 Thread 클래스 생성자의 매개변수로 넘겨서 새로운 쓰레드 객체를 만들고 그 객체에서 start()메소드를 호출한다.

 

클래스 정의 -> 인터페이스 임플리먼트 -> 객체 생성 -> new로 쓰레드를 생성하는데 생성자 중 Runnable인스턴스를 가질 수 있는 

생성자 오버로딩을 사용하면 스레드를 생성할 수 있다.

 

ex)

public class SecondThread implements Runnable{
public void run(){
	while(true){
    	System.out.println("쓰레드 테스트...");
    }
}
public static void main(String []args){
	SecondThread st = new SecondThread();
    Thread thread = new Thread(st);
    thread.start();
}