isso napisał(a)
ehhh :|
potrzebuje robić jedną rzecz w kilku watkach jednoczesnie, ale to ogolnie działa tak, że watek 1 wykona sie 10 razy, a watek 2 jeszcze nie zacznie, a ja potrzebuje, zeby rozpoczely sie wszystkie (nie koniecznie po kolei)...
moze byc przykladowo tak 1,2,3 - 3,1,2 - 2,1,3 - 3,1,2 - 3,1,2 ... chodzi o fakt tego, że w kazdym z nich cos tam sie robi... i chce zeby sie to mniej wiecej równomiernie w czasie rozkładało :)
proponuje mutex'a i zmienna int czyja_kolej
watek probuje ustawic sobie mutexa jezeli czyja_kolej%3==nr_watku (numerowanie od 0)
po wykonanej operacji zwieksza czyja_kolej++; i zwalnia mutex.
Bedziesz mial w tedy zawsze 0,1,2,0,1,2,0,1,2,0,1,2 - tyle po co?
nie lepiej jeden watek i 3 funkcje -> jedna robi to co watek0 , druga to co watek1 a trzecia to co watek2
i ten jeden watek wykonywal by te 3 funkcje kolejno - efekt ten sam.
--- dodatkowo mozesz miec tez 3 zmienne int - kazdy watek co iteracje zwiekszal by swojego inta,
i nie wykonujesz operacji jezeli int_aktualnego>srednia_int_pozostalych+tolerancja