Sprawdzanie w jakim wątku wykonywane są metody

0

Piszę sobie aplikację (grę) w której mam nowy wątek (new Thread()).

Czyli rozumiem że mam w sumie 3 wątki: main thread, event dispatch thread oraz ten mój thread.

Mam klasę która rysuje wszystkie obrazki na Graphics2D (który wziąłem z jframe.getGraphics()) i chciałbym spytać czy w tej klasie jest sens robić takie coś:

if (EventQueue.isDispatchThread()) {
    System.out.println("rysowanie ze złego wątku");
}

żeby się upewnić że an pewno dobry wątek rysuje wszystko?

0

System.out.println(Thread.currentThread().getName())

0

Jest sens. Najlepiej przez

assert EventQueue.isDispatchThread() : "rysowanie powinno być na EDT";

Gdyby sytuacja była nieprawidłowa (rysowanie ze złego wątku), to na środowisku lokalnym Ci się to wysypie (bo uruchomisz javę z -ea), a na produkcji nie będzie przeszkadzać, bo puścisz bez -ea.

Edit: Artykuł Oracle'a Programming With Assertions.

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