Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Napisati konkurentni program koji kreira 5 niti od funktora.
- Svaki funktor dobija svoj redni broj prilikom stvaranja.
- Prilikom stvaranja niti funktorima se prosleduju reference
- na vektor elemenata u koji treba da upisu svoj id.
- Id se upisuje na poziciju koja odgovara rednom broju niti
- stvorene od funktora.
- Na kraju programa proci kroz vektor i ispisati id-eve niti
- u obrnutom redosledu koristeci reverse iterator.
- */
- #include <iostream>
- #include <thread>
- #include <vector>
- using namespace std;
- typedef vector<thread::id>::const_reverse_iterator Vcri;
- class Funktor {
- int rbr;
- public:
- Funktor(int RbR) : rbr(RbR) {}
- void operator()(vector<thread::id>& v) {
- v[rbr] = this_thread::get_id();
- }
- };
- int main () {
- vector<thread::id> v(5);
- thread t[5];
- for (int i=0; i<5; i++) {
- Funktor f(i);
- t[i] = thread(f,ref(v));
- }
- for (int i=0; i<5; i++) {
- t[i].join();
- }
- for (Vcri it = v.rbegin(); it!=v.rend(); it++) {
- cout << "ID: " << *it << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement