본문 바로가기
🖥Web/🔥Java

[JAVA] 스레드 기본상식, 데몬스레드

by 요즘이슈야 2020. 3. 18.
반응형
반응형

 

 

 

 

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종료");
	}
}

데몬스레드라는것을 같이 쓴것인데

메인스레드가 끝나버리면 위의 스레드가 같이 끝나버린다.

 

반응형