Advertisement
AlezM

Pool Model

May 11th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <thread>
  3. #include <mutex>
  4.  
  5. std::mutex mtx;
  6.  
  7. void waterStream(double speed, double *pool) {
  8.     for (;;) {
  9.         _sleep(1000);
  10.         *pool += speed;
  11.     }
  12. }
  13.  
  14. void PoolModel(double *waterLevel) {
  15.     for (;;) {
  16.         _sleep(1000);
  17.         if (*waterLevel < 0)
  18.             *waterLevel = 0;
  19.         system("cls");
  20.         std::cout << "action" << std::endl;
  21.         std::cout << "water level: " << *waterLevel << std::endl;
  22.     }
  23. }
  24.  
  25. int main() {
  26.     mtx.lock();
  27.  
  28.     double waterLevel = 0;
  29.  
  30.     std::thread pool(PoolModel, &waterLevel);
  31.     std::thread first(waterStream, 1.1, &waterLevel);
  32.     std::thread second(waterStream, -1, &waterLevel);
  33.  
  34.     pool.join();
  35.     first.join();
  36.     second.join();
  37.  
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement