fir
2021-01-06 11:54:33 UTC
sam unikam pisania wielowatkowego (dosyc skutecznie na tyle ze nei mam z tym doswiadczen poza podstawowymi probami) stąd pytanie
powiedzmyz e mam pytanie ktora generuje dosc intensywnie liczac ramke obrazu (co zajmuje jej 30 milisekund), chcialbym to zrownoleglic na 2 albo cztery rdzenie
czy jest normalnym podejsciem w kazdej ramce utworzyc watek wywolacna nim funkcje liczaca pol lub jednoczwarta ekranu zrobic join na koncu do glownego threada i zamknac te watki czy tez jest to niepoprawne
pytanie dotyczy roznych api do tych watkow bo sa chyab podobne (ja bym to robil na winapi ale mozna tez rozwazyc watki z c++)
kwestia jest taka ze chyab nie da sie stworzyc tych watkow przed cala petla gry i je poprostu ponawiac/wywolywac na tych samych funkacjach co start (chyab nei ma tego w api, acz nie wczytywalem sie az tak bardzo by miec pewnosc) z api chyba by wynikalo ze nalezy je startowac joinowac i niszczyc (zamykac)
ew inna opcją do rozwazenie jest odpalenie tych pobocznych watkow tak ze kazdy ma swoją petle z systemowym sleepem osobno i po flagach (czyli po wartosciach zmiennych ) sprawdzaja czy jest cos do roboty i wtedy to robią oznaczaja ze to zrobily i przechodzą w sleep sprawdzajac co kilka milisekund czy jest nowa robota do zrobienia
odpalilem na winapowskich watkach i to pierwsze i to drugie - oba wydaja sie dzialac ale nie wiem na ile jest to poprawne i ktore lepsze...ktos tu wie cos na ten temat? googlowanie przynosi stos krapowatych watkow na pobliskie tematy bez odpowiedzi na to zasadnicze dosyc pytanie
fir
powiedzmyz e mam pytanie ktora generuje dosc intensywnie liczac ramke obrazu (co zajmuje jej 30 milisekund), chcialbym to zrownoleglic na 2 albo cztery rdzenie
czy jest normalnym podejsciem w kazdej ramce utworzyc watek wywolacna nim funkcje liczaca pol lub jednoczwarta ekranu zrobic join na koncu do glownego threada i zamknac te watki czy tez jest to niepoprawne
pytanie dotyczy roznych api do tych watkow bo sa chyab podobne (ja bym to robil na winapi ale mozna tez rozwazyc watki z c++)
kwestia jest taka ze chyab nie da sie stworzyc tych watkow przed cala petla gry i je poprostu ponawiac/wywolywac na tych samych funkacjach co start (chyab nei ma tego w api, acz nie wczytywalem sie az tak bardzo by miec pewnosc) z api chyba by wynikalo ze nalezy je startowac joinowac i niszczyc (zamykac)
ew inna opcją do rozwazenie jest odpalenie tych pobocznych watkow tak ze kazdy ma swoją petle z systemowym sleepem osobno i po flagach (czyli po wartosciach zmiennych ) sprawdzaja czy jest cos do roboty i wtedy to robią oznaczaja ze to zrobily i przechodzą w sleep sprawdzajac co kilka milisekund czy jest nowa robota do zrobienia
odpalilem na winapowskich watkach i to pierwsze i to drugie - oba wydaja sie dzialac ale nie wiem na ile jest to poprawne i ktore lepsze...ktos tu wie cos na ten temat? googlowanie przynosi stos krapowatych watkow na pobliskie tematy bez odpowiedzi na to zasadnicze dosyc pytanie
fir