방명록
- interrupt2021년 04월 02일 14시 48분 32초에 업로드 된 글입니다.작성자: 원2728x90반응형
void interrupt() : Thread의 interrupted 상태를 false에서 true로 변경
boolean interrupted() : Thread interrupted 상태를 반환
static boolean interrupted():Thread interrupted 상태를 반환후,false로변경
import javax.swing.JOptionPane; public class Ex13_9 { public static void main(String[] args) { ThreadEx9_1 th1 = new ThreadEx9_1(); th1.start(); String input = JOptionPane.showInputDialog("아무값이나 입력하세요"); System.out.println("입력하신 값은 " + input + "입니다."); th1.interrupt(); //interrupt()를 호출하면 interrupted()상태가 true가 된다. System.out.println("inInterrupted():" + th1.isInterrupted()); //true } } class ThreadEx9_1 extends Thread { public void run() { int i = 10; while (i != 0 && !isInterrupted()) { System.out.println(i--); for (long x = 0; x < 2500000000L; x++) // 시간 지연 ; } System.out.println("카운트가 종료되었습니다."); } }
시한폭탄 예제 import javax.swing.JOptionPane; public class Test101 { public static void main(String[] args) throws Exception { ThreadEx9_2 th1 = new ThreadEx9_2(); System.out.println("폭탄이 동작을 시작했습니다."); System.out.println("10초 안에 암호를 입력하세요."); th1.start(); String input; while(true) { input = JOptionPane.showInputDialog("암호는 ?"); if(input == null) { continue; } if(input.equals("Apple")) { break; } } System.out.println("입력하신 값은 " + input + "입니다."); th1.interrupt(); System.out.println("isInterrupted():"+ th1.isInterrupted()); } } class ThreadEx9_2 extends Thread { public void run() { int i = 10; while(i!=0 && !isInterrupted()) { System.out.println(i--); //for(long x=0;x<2500000000L;x++); // 시간 지연 //for(long x=0;x<2500000000L;x++){} // 시간 지연일때는 {} 이렇게 바로 닫아준다. try { Thread.sleep(1000); } catch (InterruptedException e) { } } System.out.println("카운트가 종료되었습니다."); } }
728x90반응형'Language > Java' 카테고리의 다른 글
TCP UDP (0) 2021.04.05 InetAddress 클래스 (0) 2021.04.05 교착상태 (0) 2021.04.02 JOptionPane (0) 2021.04.02 Thread의 I/O blocking (0) 2021.04.02 Daemon Thread (0) 2021.04.02 다음글이 없습니다.이전글이 없습니다.댓글