카테고리 없음

[자바] Thread(스레드) 개념 이해하기

수수께끼 고양이 2023. 10. 24. 17:25
728x90
반응형

 

참고 링크

[Java] 자바 Thread(스레드) 사용법 & 예제 (tistory.com)

 

[Java] 자바 Thread(스레드) 사용법 & 예제

Thread란? 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말하며, 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미합니다. 스레드와 태스크(혹은 작

coding-factory.tistory.com

 

public class ATM implements Runnable {
    private long depositeMoney = 10000;

    public void run() {
        synchronized (this) {
            for (int i = 0; i<10; i++) {
                notify();
                try {
                    wait();
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                if(getDepositeMoney() <= 0)
                    break;
                withDraw(1000);
            }
        }
    }

    public void withDraw(long howMuch) {
        if(getDepositeMoney() > 0) {
            depositeMoney -= howMuch;
            System.out.print(Thread.currentThread().getName()+", ");
            System.out.printf("잔액 : %,d 원 %n",getDepositeMoney());
        } else {
            System.out.print(Thread.currentThread().getName()+", ");
            System.out.println("잔액이 부족합니다.");
        }
    }

    public long getDepositeMoney() {
        return depositeMoney;
    }
}

class SynchronizeEX {
    public static void main(String[] agrs) {
        ATM atm = new ATM();
        Thread mother = new Thread(atm,"mother");
        Thread son = new Thread(atm, "son");
        mother.start();
        son.start();
    }
}

 

728x90
반응형