Advertisement
ifinox

Untitled

Sep 8th, 2017
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include <iostream>
  2. #include <thread>
  3. #include <cstdlib>
  4. #include <chrono>
  5. #include <mutex>
  6.  
  7. class Stock
  8. {
  9. private:
  10.     double price;
  11.     int changes;
  12. public:
  13.     Stock(double startingPrice)
  14.     {
  15.         changes = 0;
  16.         price = startingPrice;
  17.     }
  18.     double getPrice()
  19.     {
  20.         return price;
  21.     }
  22.     void setPrice(double Price)
  23.     {
  24.  
  25.         price = Price;
  26.         if(price < 0)
  27.             price = 0.0;
  28.         changes++;
  29.     }
  30.     int getChanges()
  31.     {
  32.         return changes;
  33.     }
  34. };
  35.  
  36. void priceRandom(Stock & stock)
  37. {
  38.     for(;;)
  39.     {
  40.         stock.setPrice(stock.getPrice() + (std::rand()%200 - 100) / 100.0);
  41. /// OTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJ
  42.         std::this_thread::sleep_for(std::chrono::nanoseconds(10));
  43. /// OTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJOTUTAJ
  44.     }
  45. }
  46.  
  47. int main()
  48. {
  49.     Stock stock(100);
  50.     std::cout << "Hello world!\n";
  51.  
  52.     std::thread thread(priceRandom, std::ref(stock));
  53.    
  54.     auto start = std::chrono::system_clock::now();
  55.  
  56.     for(;;)
  57.     {
  58.         int changes = stock.getChanges();
  59.         std::cout << "Price of stock: " << stock.getPrice() << "\tchanges: " << changes << "\n";
  60.         std::this_thread::sleep_for(std::chrono::milliseconds(10));
  61.         if (changes > 10000)
  62.             break;
  63.     }
  64.  
  65.     auto end = std::chrono::system_clock::now();
  66.     auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
  67.     std::cout << elapsed.count() << "ms" << '\n';
  68.  
  69.     thread.join();
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement