Java’da Multithreading – Bölüm 10: Kilitlenme (Deadlock)

Bu bölümde çok threadli programların baş belası kilitlenme/tıkanma (deadlock) durumunu inceleyeceğiz.

Bu bölümdeki örnek programımızda iki banka hesabı arasındaki para transferini örnekleyeceğiz. Bir banka hesabını tanımlayan “Account” (Hesap) sınıfı aşağıdaki gibidir:

public class Account {

    private int balance = 10000;

    public static void transfer(Account sourceAccount, Account targetAccount, int amount) {
        sourceAccount.withdraw(amount);
        targetAccount.deposit(amount);
    }

    public void deposit(int amount) {
        balance += amount;
    }

    public void withdraw(int amount) {
        balance -= amount;
    }

    public int getBalance() {
        return balance;
    }

}

Okumaya devam et

Reklamlar