Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 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.
- 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.
- */
- #include<iostream>
- #include<thread>
- using namespace std;
- mutex m;
- const size_t ITR = 1000000;
- void generateRand()
- {
- srand(time(NULL));
- return rand() % 10;
- }
- class IksDe
- {
- public:
- mutex m;
- void operator()()
- {
- {
- lock_guard<mutex> l(m);
- cout << this_thread::get_id() << endl;
- }
- }
- };
- int main () {
- IksDe F;
- thread t1;
- thread t2;
- thread t3;
- t1 = thread(ref(F));
- t2 = thread(ref(F));
- t3 = thread(ref(F));
- t1.join();
- t2.join();
- t3.join();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement