Assume three threads share a BankAccount object with balance of zero (0) , a ReentrantLock named myLock, and a condition object on myLock named lowBalanceCondition, as shown below. Thread one calls withdraw(30) , then thread two calls withdraw(20) and thread three calls deposit(45) . If the starting balance is 0, what is the balance after the three calls? public void deposit(int dollars)
{
MyLock.lock() ;
Int newBalance = balance + dollars;
System.out.println("depositing") ;
Balance = newBalance;
MyLock.unlock() ;
}
Public void withdraw(int dollars)
{
MyLock.lock() ;
While (balance < dollars)
{
LowBalanceCondition.await() ;
}
Int newBalance = balance - dollars;
System.out.println("withdrawing") ;
Balance = newBalance;
MyLock.unlock() ;
}
A) 0
B) 15 or 25
C) 45
D) -5
Correct Answer:
Verified
Q65: When is it a good idea to
Q72: Stale data occurs in multi-CPU machines when
Q73: Class MyClass has two ReentrantLock objects, myLock1
Q74: Under what circumstances will a call to
Q76: Assume two threads share a BankAccount object
Q78: "Livelock" occurs when one thread runs continuously,
Q79: Consider an old fashioned telephone booth that
Q80: Which of the following scenarios may not
Q81: Which are ways that a thread can
Q82: Suppose that the class XYZ implements the
Unlock this Answer For Free Now!
View this answer and more for free by performing one of the following actions
Scan the QR code to install the App and get 2 free unlocks
Unlock quizzes for free by uploading documents