Test/JAVA Test
[JAVA 기초 문제] 공동 계좌에서 인출하기
오류나면꽥꽥
2023. 5. 26. 04:37
가족 공동 계좌
10000원
가족들은
5000원 씩 사용
가족 구성원은 3명
이때, 결제에 실패한 가족의 이름을
console에 출력!
package class01;
class Family extends Thread{
Account a=new Account();
@Override
public void run() {
a.use();
}
}
class Account{
static int money=10000; // 공유자원 돈
synchronized void use() { // 동기화 : 내가 쓰는 동안은 접근하지마
if(money>=5000) {
System.out.println(Thread.currentThread().getName()+" 인출성공!");
// 스레드가 멤버변수로 이름을 갖고 있다
// 스레드 객체에 있는 이름을 받아옴
/*
class Thread{
private String name;
Thread(){
this(new Thread(),null);
}
Thread(Thread thread,String name){
this.name=name;
}
getter,setter{
}
*/
money-=5000;
}
else {
System.out.println(Thread.currentThread().getName()+" 인출실패..");
}
System.out.println("남은 돈: "+money);
}
}
public class Test03 {
public static void main(String[] args) {
Family f=new Family();
Thread t1=new Thread(f,"엄마");
Thread t2=new Thread(f,"아빠");
Thread t3=new Thread(f,"나");
t1.start();
t2.start();
t3.start();
}
}
출려)
엄마 인출성공!
남은 돈: 5000
아빠 인출성공!
남은 돈: 0
나 인출실패..
남은 돈: 0