Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <thread>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. class Account
  7. {
  8. public:
  9.     Account(int balance): balance(balance) { }
  10.     int getBalance() const
  11.     {
  12.         return balance;
  13.     }
  14.     void deposit(int amount)
  15.     {
  16.         balance += amount;
  17.     }
  18.     bool withdraw(int amount)
  19.     {
  20.         if (balance >= amount)
  21.         {
  22.             balance -= amount;
  23.             return true;
  24.         }
  25.         return false;
  26.     }
  27. private:
  28.     int balance;
  29. };
  30.  
  31. void client(int clientid, Account &account, int amount)
  32. {
  33.     printf("Client %d balance: %d\n", clientid, account.getBalance());
  34.     bool result = account.withdraw(amount);
  35.     if (result)
  36.         printf("Client %d withdraw %d OK\n", clientid, amount);
  37.     else
  38.         printf("Client %d withdraw %d FAILED\n", clientid, amount);
  39.     printf("Client %d balance: %d\n", clientid, account.getBalance());
  40. }
  41. int main(int argc, char *argv[])
  42. {
  43.     Account account(100);
  44.     thread t1(client, 1, ref(account), 90);
  45.     thread t2(client, 2, ref(account), 80);
  46.     thread t3(client, 3, ref(account), 70);
  47.     t1.join();
  48.     t2.join();
  49.     t3.join();
  50.     cout << "Account balance " << account.getBalance()
  51.               << "\n";
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement