* 이 글은 2020. 3. 27. 23:28에 작성되었던 글입니다 *
java에서는 작업쓰레드도 객체로 생성을 하기 때문에 클래스가 필요하다.
Thread 생성 및 실행
1. java.lang.Thread를 직접 생성하는 방법
Runnable을 매개값으로 갖는 생성자를 호출하여 사용.
Thread thread = new Thread ( Runnable target);
1)Runnable은 인터페이스 타입이므로 구현 객체를 대입 해야한다.
** Runnable은 작업 스레드가 실행할 수 있는 코드를 가지고 있는 객체이다. **
2) 구현 객체 생성
① 새로운 클래스를 생성하여 구현 객체를 만들수도 있고,
② 익명 구현 객체를 정의할 수 도 있다.
3) 구현 클래스는 run() 메소드를 재정의 해야한다.
run() 메소드 안에는 작업 스레드가 실행할 코드를 작성한다.
① 구현 클래스
class Task implements Runnable {
@Override
public void run() {
실행할 코드;
}
}
② 익명 구현 객체
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
실행할 코드;
}
});
Thread를 상속하여 하위 클래스로 만들어 생성하기.
1) 1의 방법과 마찬가지로 run() 메소드를 재정의하여 쓰레드가 실행할 코드를 작성한다.
class Thread1 extends Thread { @Override public void run() { 실행할 코드; } }
class Thread1 extends Thread {
@Override
public void run() {
실행할 코드;
}
}
2. Thread 실행하기.
1) Thread의 start() 메소드를 호출하면 해당 thread가 실행된다.
class MainClass { public static void main (String [] args) { Thread thread = new Thread(new Runnable(){ @Override public void run() { System.out.println("작업 내용"); } }); thread.start(); } }
class MainClass {
public static void main (String [] args) {
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
System.out.println("작업 내용");
}
});
thread.start();
}
}
Thread 이름 설정 및 스케줄링
Thread는 생성할 때 이름을 설정할 수 있다.
Thread의 생성자 내에서 setName() 메소드를 이용하여 설정이 가능하다.
class ThreadA extends Thread { class ThreadA() { setName("ThreadA"); } @Override public void run() { System.out.println(Thread.getName()); } }
class ThreadA extends Thread {
class ThreadA() {
setName("ThreadA");
}
@Override
public void run() {
System.out.println(Thread.getName());
}
}
이름을 명시하지 않으면 자동으로 Thread1 ~ Threadn번까지의 이름으로 설정된다.
getName() 메소드를 이용하면 thread의 이름을 얻을 수 있다.
'코딩 이야기 > Java' 카테고리의 다른 글
[JAVA] 스레드(Thread) - 프로세스와 멀티 태스킹 (0) | 2020.12.09 |
---|---|
[JAVA] 클래스 Class (0) | 2020.12.09 |
[JAVA의 정석] 자바의 정석 7.객체지향 프로그래밍 [7-1] (0) | 2020.12.09 |
[JAVA의 정석] 자바의 정석 7.객체지향 프로그래밍 [7-2] (0) | 2020.12.09 |