/ / Na Androidzie, jak nadal uruchamiać wątek, dopóki nie zostanie zatrzymany przez użytkownika? - Java, Android, wielowątkowość

W Androidzie, jak uruchomić wątek, dopóki użytkownik go nie zatrzyma? - Java, Android, wielowątkowość

Dziękuję za uwagę.

Oto scenariusz: moja aktywność polega na kilkukrotnym przeprowadzeniu prostej symulacji (gry dwóch AI jedna przeciwko drugiej) i kontynuowaniu tego, dopóki użytkownik nie naciśnie przycisku. Uzyskane dane są wykorzystywane do poprawy jakości sztucznej inteligencji (już zakodowałem tę część i wydaje się, że działa).

Chcę, aby ta aktywność wyświetlała podstawowe informacje, na przykład o liczbie gier, które zostały już rozegrane.

Jestem zupełnie nowy w rozwoju Androida i Java. Wiem, że do symulacji muszę użyć osobnego wątku, ale nie wiem, jak sobie z tym poradzić, ponieważ do tej pory nigdy nie użyłem oddzielnych wątków. Co mnie dręczy: czy nowy wątek ma dostęp do publicznych metod i zmiennych klasy, z którą został rozpoczęty? Jeśli tak to jak ?

Przeczytałem już dokumentację dotyczącą wątków na oficjalnej stronie dla programistów Androida.

Odpowiedzi:

0 dla odpowiedzi № 1

Instancja klasy nie jest powiązana z żadnym wątkiemtaki jak główny wątek, który go utworzył. Wątek utworzony w ramach metody w klasie będzie miał dostęp do prywatnych członków tej klasy. Będzie miał dostęp do członków publicznych w dowolnych przypadkach, w których jest dany przez swojego twórcę lub może uzyskać publiczną metodę w innym miejscu (np. Statyczny lub kontekst aplikacji).

Tak więc przy wielowątkowości musisz być ostrożny jakdwa wątki mogą uzyskiwać dostęp do tych samych metod i zmiennych w tym samym czasie i nigdy nie możesz być pewien, który z nich dotrze na miejsce jako pierwszy. Najbezpieczniejszym sposobem jest zaprojektowanie go tak, aby tylko jeden wątek "zapisywał" do zmiennych, a inne po prostu czytały.