Я борюсь с проектом «Аукционная система» в Java. Я не знаю, какой шаблон или методы наиболее эффективны для борьбы с параллелизмом при размещении ставок. Достаточно ли использовать «синхронизировано»? Или мне следует использовать блокировки?... Если я делаю что-то не так, дайте мне знать.
public synchronized void Bid(Item item, Bidder bidder, double bidAmount) {
if (bidAmount bidder.getBalance()) {
System.out.println("Bid failed");
return;
}
if (latestBid != null) {
latestBid.getBidder().unlockMoney(latestBid.getBidAmount());
}
BidTransaction bt = new BidTransaction(item, bidder, bidAmount);
bidHistory.add(bt);
setLatestBid(bt);
item.setCurrentPrice(bidAmount);
bidder.lockMoney(bidAmount);
System.out.println(bidder.getUsername() + " bid " + bidAmount);
}