當1000個請求(每個Httprequest作爲一個線程)來到調用Trust對象的存款方法的服務器時會發生什麼。更多線程同步實例的同步方法
我已經編寫了類似這樣的代碼,可以正常工作,但是如果存款金額具有使其他線程處於等待狀態的長邏輯,那麼情況如何。
class Trust {
private int amount;
public synchronized void deposit(int amount) {
this.amount += amount;
System.out.println(Thread.currentThread().getName() + "; Amount " +this.amount);
}
}
class DepositAmount implements Runnable {
Trust obj;
private int amount;
DepositAmount(Trust obj, int amount) {
this.obj = obj;
this.amount += amount;
}
public void run() {
obj.deposit(amount);
}
}
public class Bank {//CustomerToTrust {
public static void main(String args[]) {
System.out.println("Naga");
//amt.nextInt(5000)
Trust obj = new Trust();
for(int i =0; i< 100 ; i++) {
Random amt = new Random();
new Thread(new DepositAmount(obj, 100)).start();
}
}
}
的情況下存款金額的方法有很長的邏輯, 請告訴我猜想當1000個請求在一個實例來量存入信任。 剩餘的999個線程是否會被阻塞,直到第一個線程的數量減少爲止。最後一個線程怎麼樣,用戶需要等到響應時間。
介紹'Thread.sleep(1000)'來模擬「長邏輯」並用你的程序進行實驗。 –