티스토리 뷰
구현
1. Thread 클래스 상속 -> 다중상속이 불가능하므로 다른 클래스를 상속받을 수 없다!
class ExThread extends Thread {
public void run() {
// 비즈니스 코드
}
}
2. Runnable 인터페이스 구현 -> 이 방법이 일반적. 재사용성 높고, 코드의 일관성 유지 가능!
class ExThread implements Runnable {
public void run() {
// 비즈니스 코드
}
}
쓰레드를 구현한다? -> 스레드를 통해 작업하고자 하는 내용으로 run()의 내부를 채우는 것
실행
ExThread t = new ExThread();
t.start(); // 실행
t.start(); // 에러 -> 한 번 종료된 스레드는 다시 실행할 수 없다! 한 스레드당 실행 1번만! IllegalThreadStateException.
// 그래서 스레드의 작업을 한 번 더 실행해야 한다고 하면 새로운 스레드 생성
t = new ExThread(); // 다시 생성
t.start(); // 실행
자바 애플리케이션이 실행되면 JVM은 main과 system이라는 스레드 그룹을 만들고 JVM 운영에 필요한 스레드들을 생성해서 이 스레드 그룹에 포함시킨다. main메서드를 수행하는 main스레드는 main스레드 그룹에, 가비지컬렉션을 수행하는 Finalizer스레드는 system스레드 그룹에.
우리가 생성하는 모든 스레드 그룹은 main스레드 그룹의 하위 스레드 그룹이 되며, 스레드 그룹을 지정하지 않고 생성한 스레드는 자동적으로 main스레드 그룹에 속하게 된다.
자바의 정석 P.742
300x250
'공부흔적 > 자바' 카테고리의 다른 글
JMeter (0) | 2021.05.18 |
---|---|
데몬 스레드(Daemon Thread) (0) | 2021.04.12 |
멀티스레딩 (0) | 2021.04.12 |
클래스 메서드(static메서드)와 인스턴스 메서드 (0) | 2021.04.07 |
JVM의 메모리 구조 (0) | 2021.04.07 |