ExecutorService service = Executors.newFixedThreadPool(accountsCount);
// Bank bank = new NotSynchronizedBank(1000, accountsCount);
// Bank bank = new ExplicitLockSynchronizedBank(1000, accountsCount);
// Bank bank = new ImplicitLockSynchronizedBank(1000, accountsCount);
// Bank bank = new ExplicitLockSynchronizedBankWithCondition(1000, accountsCount);
Bank bank = new ImplicitLockSynchronizedBankWithCondition(1000, accountsCount);
// Bank bank = new BlockLockSynchronizedBankWithCondition(1000, accountsCount);
while(--accountsCount>=0)
{
service.submit(new Transfert(bank, accountsCount));
}