Wskaźnik na wiele wątków
Ostatnio zmodyfikowano 2015-05-24 15:48
wiktor12348 Temat założony przez niniejszego użytkownika |
Wskaźnik na wiele wątków » 2015-05-23 12:46:57 Witam, Posiadam strukturę: struct arg { char * buff; int size; char * hash; int * licznik; };
Przekazuje to do każdego wątku, ale wcześniej tworze zmienną "licznik", i przekazuje adres do każdego licznika w tej strukturze: int licznik = 0;
argument[ i ].licznik = & licznik;
Chodzi generalnie o to by każdy wątek mógł inkrementować licznik będący w mainie. printf( "1 :%d \n", & licznik ); argument[ i ].licznik = & licznik; printf( "2 :%d \n", &( argument[ i ].licznik ) );
Zwraca różne adresy. Pewnie źle rozumiem coś z podstaw lub źle zapisuje. Ktoś mnie może poprawić? |
|
Monika90 |
» 2015-05-23 14:11:29 Nie rozumiesz podstaw, a zabierasz się za wątki. Powinno być printf( "1 :%p\n", & licznik ); argument[ i ].licznik = & licznik; printf( "2 :%p\n", argument[ i ].licznik );
Chodzi generalnie o to by każdy wątek mógł inkrementować licznik będący w mainie.
|
Wątki nie mogą inkrementować tego samego licznika bez synchronizacji. |
|
wiktor12348 Temat założony przez niniejszego użytkownika |
» 2015-05-23 23:08:10 Nie rozumiesz podstaw, a zabierasz się za wątki. Powinno być |
Jak widać nie zrozumiałaś przekazu :-) Tak mam pewne braki oraz brak doświadczenia w c/c++. Gdybym nie miał problemów - nie szukałbym pomocy. Często sam rozwiązuje takie zagwozdki ale czasem lepiej spytać od razy dowiem się że robię milion rzeczy źle. Ten zapis co poprawiłaś to akurat najmniej ważny jest. Chociaż tam też był błąd. Dzięki. Wcześniej używałem danych statycznych w funkcjach, tam nie potrzebowałem synchronizacji. Myślałem że też ominę to używają adresu komórki, ale jak widać pomyliłem się znowu. |
|
DejaVu |
» 2015-05-24 10:52:14 Jak widać nie zrozumiałaś przekazu :-)
|
No właśnie to Ty nie zrozumiałeś przekazu. Najpierw trzeba znać podstawy, a dopiero potem robić cokolwiek z wielowątkowością. |
|
wiktor12348 Temat założony przez niniejszego użytkownika |
» 2015-05-24 15:48:07 No właśnie to Ty nie zrozumiałeś przekazu. Najpierw trzeba znać podstawy, a dopiero potem robić cokolwiek z wielowątkowością. |
Nie wiem co to wnosi do tematu, ale ja doskonale wiem że mam braki, notabene nie tylko ja. Prace na wątkach wymuszono na mnie. Generalnie nie rozumiem, poruszenia i problemu jaki wynika z tej rozmowy :-) Uczę się, popełniam błędy, rozwiązuje problemu lub szukam pomocy/wskazówek. W dodatku jestem intelektualnym gamoniem. Wskaźnik był dobrze użyty ale później zwracał śmieci. Zresztą nie ważne. Dziękuje za pomoc. Życzę miłej niedzieli, chociaż tak mało jej zostało :-) |
|
« 1 » |