반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- KNeighborsClassifier
- classification
- C언어
- inorder
- 대이터
- web 사진
- 결합전문기관
- html
- pycharm
- java역사
- bccard
- 자료구조
- broscoding
- CES 2O21 참여
- 머신러닝
- postorder
- web 용어
- CES 2O21 참가
- vscode
- web 개발
- 데이터전문기관
- cudnn
- 재귀함수
- 웹 용어
- mglearn
- paragraph
- discrete_scatter
- tensorflow
- Keras
- web
Archives
- Today
- Total
bro's coding
java.Deamon Thread 본문
반응형
Deamon Thread
백그라운드에서 실행되는 스레드
자신을 실행시킨 스레드가 종료되면 함께 종료됨
ex) thread.setDaemon(true);
워드 작업 실행시 백그라운드에서 주기적으로 백업을 하도록 구현하고
이 백업 스레드를 setDeamon(true)로 처리하면 워드 프로그램 종료시 함께 종료됨
Deamon Thread를 사용하지 않은 경우
package step8;
/*
* Daemon Thread 테스트
* 1. Word Thread
* 2. Backup Thread
*
* Word Thread 시작시 Backup Thread가 시작하도록 구성
* Word Thread가 작업을 종료할 때
* Backup Thread도 작업을 종료하도록
* 처리하는 프로그램 구성
*/
class BackUpWorker implements Runnable {
@Override
public void run() {
while (true) {
try {
backup();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void backup() throws InterruptedException {
Thread.sleep(3000);// 3초 간격으로 백업처리
System.out.println("워드문서 백업처리");
}
}
class Word implements Runnable {
@Override
public void run() {
Thread backupTread = new Thread(new BackUpWorker());
backupTread.start();
try {
execute();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("**워드문서 작업종료**");
}
}
public void execute() throws InterruptedException {
for (int i = 0; i < 10; i++) {
System.out.println("워드문서 작업 " + i);
Thread.sleep(1000);
}
}
}
public class TestThread8 {
public static void main(String[] args) {
System.out.println("**main Tread 시작**");
Thread wt = new Thread(new Word());
wt.start();
System.out.println("**main Tread 종료**");
}
}
**main Tread 시작**
**main Tread 종료**
워드문서 작업 0
워드문서 작업 1
워드문서 작업 2
워드문서 백업처리
워드문서 작업 3
워드문서 작업 4
워드문서 작업 5
워드문서 백업처리
워드문서 작업 6
워드문서 작업 7
워드문서 작업 8
워드문서 백업처리
워드문서 작업 9
**워드문서 작업종료**
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
워드문서 백업처리
Deamon Thread 사용
package step8;
/*
* Daemon Thread 테스트
* 1. Word Thread
* 2. Backup Thread
*
* Word Thread 시작시 Backup Thread가 시작하도록 구성
* Word Thread가 작업을 종료할 때
* Backup Thread도 작업을 종료하도록
* 처리하는 프로그램 구성
*/
class BackUpWorker implements Runnable {
@Override
public void run() {
while (true) {
try {
backup();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void backup() throws InterruptedException {
Thread.sleep(3000);// 3초 간격으로 백업처리
System.out.println("워드문서 백업처리");
}
}
class Word implements Runnable {
@Override
public void run() {
BackUpWorker backupWorker = new BackUpWorker();
Thread backupTread = new Thread(new BackUpWorker());
backupTread.setDaemon(true);
backupTread.start();
try {
execute();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
backupWorker.backup();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("**워드문서 작업종료**");
}
}
public void execute() throws InterruptedException {
for (int i = 0; i < 10; i++) {
System.out.println("워드문서 작업 " + i);
Thread.sleep(1000);
}
}
}
public class TestThread8 {
public static void main(String[] args) {
System.out.println("**main Tread 시작**");
Thread wt = new Thread(new Word());
wt.start();
System.out.println("**main Tread 종료**");
}
}
**main Tread 시작**
**main Tread 종료**
워드문서 작업 0
워드문서 작업 1
워드문서 작업 2
워드문서 백업처리
워드문서 작업 3
워드문서 작업 4
워드문서 작업 5
워드문서 백업처리
워드문서 작업 6
워드문서 작업 7
워드문서 작업 8
워드문서 백업처리
워드문서 작업 9
워드문서 백업처리
워드문서 백업처리
**워드문서 작업종료**
java.Thread
Thread 사전적 의미 실, 실이 여러개 모여 옷을 만든다 정의 프로세스 내의 세부적 실행단위 (프로세스 : 현재 실행중인 프로그램) ex) 동영상 플레이어 (Youtube 같은)를 실행 : 동영상 플레이어 프로
broscoding.tistory.com
반응형
'[IT] > java' 카테고리의 다른 글
java.Network.Inner class/Nested class (0) | 2021.03.22 |
---|---|
java.Network.EchoProgram(1:1) (0) | 2021.03.19 |
java.Network (0) | 2021.03.18 |
java.currentTimeMillis(유닉스 시간) (0) | 2021.03.18 |
java.Tread.scheduling (0) | 2021.03.17 |
java.Tread.sleep (0) | 2021.03.17 |
java.Thread (0) | 2021.03.17 |
java.FileMove(파일 이동) (0) | 2021.03.16 |
Comments