Implement a bank line of credit account. The account will have two primary attributes, the credit limit and current credit balance. The line of credit class should also contain a lock and a sufficient credit limit condition. When initialized the current credit balance will be zero. The credit limit should be determined at construction time. The owner of the credit line can get money up to the credit limit and make payments until the balance is zero. If a request is made for money than is available, the credit limit will return up to the limit, but not beyond it. So the getMoney method should have a return value of how much money is returned.

The credit line program should have two threads: one to get more money from credit line and a second to make payments. The thread to get more money increases the credit balance up to, but not beyond the credit limit. The make payment thread decreases the current credit balance.

The make payment thread should make random payments between $0 and $500 every 2 seconds for a total of 50 payments. It should print payment made and new credit balance. The credit balance should not go below $0 so if an unneeded attempt at payment is made, it will not be accepted.

The get money thread should attempt to get more money of random amounts between $1 and $500 every 3 seconds for a total of 50 attempts to get money. It should print requested amount and amount received.

Create a tester program to run the two threads. The LineOfCredit class should have appropriate protections on increments and decrements of the credit balance.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.