Wspóldzielony obiekt struktury - wątki
Ostatnio zmodyfikowano 2017-07-28 15:57
Anim Temat założony przez niniejszego użytkownika |
Wspóldzielony obiekt struktury - wątki » 2017-07-28 13:43:53 Cześć, rozpocząłem pracę z wątkami, w sumie to co stworzyłem spełnia funkcjonalność (dzięki @pekfos za radę z wątkami :) ), jednak nie podoba mi się jedna rzecz, którą robię i nie wiem jak to rozwiązać, mianowicie chodzi mi o obiekt klasy, który ma być współdzielony. Czy zmienna musi być współdzielona "globalnie"? Jak to obejść? Kod: struct Menu { char opcjaA; char opcjaB; };
Menu menu;
void funkcja_A() { }
void funkcja_B { }
int main() { boost::thread thread_one( boost::bind( & funkcja_A ) ); boost::thread thread_second( boost::bind( & funkcja_B ) ); thread_one.join(); thread_second.join(); }
//EDIT: Zrobiłem coś takiego: struct Menu { static char opcja; char opcja_A; char opcja_B; };
char Menu::opcja = 'a';
ale to także mi się nie podoba. Bo to takie oszukane podejście do zmiennej globalnej ;p Czyż nie ? pracuję na booscie ze względu na kompilator :) |
|
j23 |
» 2017-07-28 15:40:12 A w parametrze przekazać nie możesz? void funkcja_A( Menu & m ) { m.opcjaA = 'A'; }
void funkcja_B( Menu & m ) { m.opcjaB = 'B'; }
int main( int argc, char ** argv ) { Menu m; thread t1( & funkcja_A, ref( m ) ); thread t2( & funkcja_B, ref( m ) ); t1.join(); t2.join(); return 0; }
|
|
Anim Temat założony przez niniejszego użytkownika |
» 2017-07-28 15:57:25 No właśnie powinienem ^^
Człowiek kombinuje, zamiast trzymać się sprawdzonych rozwiązać :) dziękuję @j23 |
|
« 1 » |