일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 파일질라설치오류
- selectedIndex
- push오류
- FileZilla설치
- SUB함수
- Math.ceil()
- removeClass
- Parent
- Excel
- selectoptions
- 파일질라설치
- calc.minus
- calc.plus
- Math.round()
- hide
- 파일질라다운로드
- FileZilla다운로드
- 1521
- excel중복체크
- index %
- Git
- Math.floor()
- slideUp
- toFixed()
- 증가값
- addClass
- 소스트리인증실패
- is_check
- ctrl+/
- 주석이 먹히지 않을 때
- Today
- Total
잡동사니에도 사랑을
[21.08.24] ATMTest 본문
package thread;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ATMTest implements Runnable {
// Runnable이란 interface를 가졌다는 건 ATMTest가 Thread하고 싶다는 것
private long depositeMoney = 100000; // 잔액
private long balance; // 찾고자 하는 금액
public static void main(String[] args) {
ATMTest atm = new ATMTest();
Thread mom = new Thread(atm, "엄마"); // 스레드 생성 - 아래 setName 대신
Thread son = new Thread(atm, "아들"); // 스레드 생성
// mom.setName("엄마"); // 스레드에 이름 명시
// son.setName("아들");
mom.start(); // 스레드 시작
son.start(); // 스레드 시작
}
@Override
public synchronized void run() {
System.out.println("안녕하세요 " + Thread.currentThread().getName() + "님"); // 현재 실행중인 스레드 찍어라
// Thread[엄마,5,main]
// Thread[아들,5,main]
// 안녕하세요 엄마님 ------ getName을 통해 이름만 꺼내올 때의 결과값
// 안녕하세요 아들님
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("찾고자 하는 금액 입력 : ");
// balance = Integer.parseInt(br.readLine()); ---error
// balance는 long타입인데, 8바이트가 4바이트인 Integer.parseInt로 바뀌면 안되니,
try {
balance = Long.parseLong(br.readLine()); // Override 구역에선 throw 절대 안됨
} catch (IOException e) { // IO가 NumberFormat Exception도 잡아버림
e.printStackTrace();
}
// 잔액 계산
if (depositeMoney > balance) {
depositeMoney -= balance;
System.out.println("잔액은 " + depositeMoney + "입니다");
} else if (depositeMoney < balance) {
System.out.println("잔액이 부족합니다.");
} else if (depositeMoney % 10000 != 0) {
System.out.println("만원 단위로 입력하세요");
}
}
}
// 엄마와 아들이 동시에 들어오면, 찾고자 하는 금액 입력 : 찾고자 하는 금액 입력 :
// 0.1초라도 먼저 들어오는 사람이 들어오게끔
// 겹치지 않게 synchronized를 걸어준다. 그 결과, 안녕하세요 엄마님 찾고자 하는 금액 입력 :
'JAVA_SE > 10_exception_thread' 카테고리의 다른 글
[21.08.23] SingleTon (0) | 2021.08.26 |
---|---|
[21.08.20] JoinMain (0) | 2021.08.25 |
[21.08.24] ThreadOnOff (0) | 2021.08.25 |
[21.08.24] Synchronized(동기화) (0) | 2021.08.25 |
[21.08.23] Packman (0) | 2021.08.25 |