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();
}