Wątek programu i AWT

0

Mam prostą gierkę. W funkcji main jest petla głowna gry. Mam pytanie. Czy główny wątek AWT jest innym watkiem niż ten, w którym chodzi mój program?

0

tak, event dispatchign thread to osobny watek

0

Czyli mój InputManager, który posiada metody isPressed i jednocześnie setPressed powinien mieć synchronizowane metody? Wewnętrznie używa on HashMap.

0

no jesli watek gry w main zapisuje cos do tej haszmapy, a drugi watek rowniez zapisuje badz odczytuje i robi costam na podstawie tego co odczytal, lub w druga strone, no to trzeba zsynchronizowac. trudno powiedziec czy musisz to robic jak nie ma kodu ani nawet opisu co sie w przyblizeniu dzieje. zamiast synchronizowac dostep do mapy mozesz uzyc java.util.concurrent.ConcurrentHashMap ktora ma dosc skomplikowane sposoby aby watki szapisujace / czytajace z roznych bucketow nie blokowaly sie nawzajem, moze to zwiekszyc performance u ciebie. ale mowie - krysztalowa kule zostawilem w pracy ;-)

0

InputManager jest jednocześnie KeyListenerem. Gdy dostanie zdarzenie keyPressed to dodaje do HashMapy informacje o tym, że przycisk został wciśnięty - dodaje wartość boolean dla klucza, którym jest nazwa przycisku.

InputManager ma metodę isPressed, która sprawdza, czy przycisk jest wciśniety - to znaczy szuka w HashMapie bartości boolean dla tego klucza i ją zwraca.

Więc chyba powinno to być synchronizowane. Pytam, bo widzę, że ludzie w swoich silnikach tego często nie robią...

1 użytkowników online, w tym zalogowanych: 0, gości: 1