Wskaźnik na wiele wątków
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Wskaźnik na wiele wątków

AutorWiadomość
Temat założony przez niniejszego użytkownika
Wskaźnik na wiele wątków
» 2015-05-23 12:46:57
Witam,

Posiadam strukturę:

C/C++
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:

C/C++
int licznik = 0;
/*stworzona tablica struktur*/
/*...*/
argument[ i ].licznik = & licznik;
 
Chodzi generalnie o to by każdy wątek mógł inkrementować licznik będący w mainie.

C/C++
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ć?
P-132658
» 2015-05-23 14:11:29
Nie rozumiesz podstaw, a zabierasz się za wątki. Powinno być
C/C++
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.
P-132661
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.
P-132680
» 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ą.
P-132689
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 :-)
P-132702
« 1 »
 Strona 1 z 1