package bank_locks; import java.util.Random; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class Bank { Client[] clients; Random rg; /* ReentrantLock je "katanac", poznat i pod imenom * "semafora". Predstavlja softversku apstrakciju za * zakljucavanje kriticnih sekcija (regiona koda * koji smeju da budu izvrsavani ekskluzivno od * jedne niti u datom momentu */ ReentrantLock lock; public Bank() { rg=new Random(); lock=new ReentrantLock(); clients=new Client[100]; for(int i=0; i%d) Total: %d\n", clients[from].balance,amount, from,to,total()); /* otkljucavamo da bi i neka druga nit mogla da udje */ lock.unlock(); } int total(){ int total=0; for(int i=0; i