게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 쓰레드 동기화 다시 질문드립니다.
게시물ID : programmer_5918짧은주소 복사하기
작성자 : 홍기씨
추천 : 0
조회수 : 2237회
댓글수 : 7개
등록시간 : 2014/10/12 19:03:24
옵션
  • 본인삭제금지
 
class Buffer{
  private int money = 100000;
  synchronized int paymoney(int pay) {
   money -= pay;
   return money;
  }
  int getmoney(){
   return money;
  }
}
class man extends Thread {
 Buffer b;
 int pay;
 man(String Name, Buffer b, int money){
  super(Name);
  this.b = b;
  this.pay = money;
 }
 public void run(){
  
  while(true){
   synchronized(b){
    
    if(b.getmoney() - pay < 50000){
     System.out.println(getName()+ ",출금 불가 = " + pay +", 통장잔액 =" + b.getmoney());
     break;
    }
    else {
     b.paymoney(pay);
     System.out.println(getName()+ ",출금 = " + pay +", 통장잔액 =" + b.getmoney());
    }
     
   }
  }
 }
}
public  class 과제2번 {
  public static void main(String[] args){
  Buffer b = new Buffer();
  man c1 = new man("쓰레드1", b , 10000);
  man c2 = new man("쓰레드2", b , 5000);
 
  c1.start();
  c2.start();
 
 }
}
캡처.PNG
이렇게 나오는데
질문있습니다.
우선순위를 주지 않고 교대로 출금을 하게 하려면 어떻게 해야되는 건가요? 아무리해도 안되네요. 도움 요청드립니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호