Advertisement
Lauda

Untitled

Apr 3rd, 2013
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. /*
  2. Napraviti konkurenti program koji modelira zauzimanje velike količine memorije u okviru funkcije F od koje će se kreirati niti. Memorija se može zauzeti kao veliki niz (100000000) struktura pri čemu svaka struktura sadrži veliki broj (100000000) celobrojnih vrednosti. Dato zauzimanje memorije staviti u try-catch blok kako bi se uhvatio potencijalni izuzetak zbog manjka raspoložive memorije.
  3.  
  4. U funkciji F na početku try catch bloka zaključati globalni mutex operacijom lock, a pre izlazka iz bloka ga otključati operacijom unlock. Kreirati 2 niti od funkcije F. Pratiti tok programa.
  5. */
  6.  
  7. #include<iostream>
  8. #include<thread>
  9. using namespace std;
  10.  
  11. mutex m;
  12. const size_t ITR = 1000000;
  13.  
  14.  
  15. void generateRand()
  16. {
  17.     srand(time(NULL));
  18.     return rand() % 10;
  19. }
  20.  
  21. class IksDe
  22. {
  23.     public:
  24.     mutex m;
  25.         void operator()()
  26.         {
  27.             {
  28.                 lock_guard<mutex> l(m);
  29.                 cout << this_thread::get_id() << endl;
  30.             }
  31.         }
  32.  
  33. };
  34. int main () {
  35.  
  36.     IksDe F;
  37.     thread t1;
  38.     thread t2;
  39.     thread t3;
  40.  
  41.     t1 = thread(ref(F));
  42.     t2 = thread(ref(F));
  43.     t3 = thread(ref(F));
  44.  
  45.     t1.join();
  46.     t2.join();
  47.     t3.join();
  48.  
  49.  
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement