반응형
반응형
package book.chap15;
/*
상황에 따라 분리된 스레드로 백그라운드 작업을 해야하는 경우가 있다.
JVM안에 가비지 컬렉션과 같은 작업이 대표적이다.
이런 백그라운드 작업이 일반 스레드로 설정되어 있다면 전원이 종료되거나 사용자가 강제종료
하지 않는 한 애플리케이션은 영원히 정지 하지 않을 것이다.
*/
public class DaemonThreadTest {
public static void main(String[] args) {
Thread th = new Thread() {
public void run() {
try {
while (true) {
Thread.sleep(5000);//milisecond 5초 정지
System.out.println("INNER Thread종료");
}
} catch (InterruptedException e) {
}
}
};
th.setDaemon(true);
th.start();
System.out.println("main종료");
}
}
스레드는 싱글스레드와 멀티스레드가 있다.
싱글스레드는 하나이고
멀티스레드는 같은것들이 여러개이지만 다른작업을 하는것이다.
package book.chap15;
/*
자바에서는 애플리케이션 내부의 모든 스레드가 종료되지 않으면 JVM이 종료되지 않는다.
main메소드의 스레드가 종료되었지만 중간에생성한 스레드가 종료될 때 까지
빨강버튼은 비활성화 되지 않고 있을 것이다.
*/
public class NormalThreadTest {
public static void main(String[] args) {
Thread th = new Thread() {
public void run() {
try {
while (true) {
Thread.sleep(5000);//milisecond 5초 정지
System.out.println("INNER Thread종료");
}
} catch (InterruptedException e) {
}
}
};
th.setDaemon(true);
th.start();
System.out.println("main종료");
}
}
데몬스레드라는것을 같이 쓴것인데
메인스레드가 끝나버리면 위의 스레드가 같이 끝나버린다.
반응형
'🖥Web > 🔥Java' 카테고리의 다른 글
[Java] String, StringBuilder, StringBuffer의 차이 (0) | 2020.06.05 |
---|---|
[JAVA] 추상클래스와 인터페이스의 차이 (0) | 2020.05.25 |
[JAVA] URL 코드보기 (0) | 2020.03.18 |
[JAVA]StreamReader , BufferedReader (0) | 2020.03.18 |
[JAVA] 접근제어자 (0) | 2020.02.10 |