Tworzę aplikację Java z wątkiem logiki aplikacji i wątkiem dostępu do bazy danych. Oba trwają przez cały okres istnienia aplikacji i oba muszą działać w tym samym czasie (jeden rozmawia z serwerem, jeden z użytkownikiem; gdy aplikacja jest w pełni uruchomiona, potrzebuję ich obu do działania).
Jednak podczas uruchamiania muszę się upewnić, że początkowo wątek aplikacji czeka, aż wątek db będzie gotowy (obecnie określony przez odpytywanie niestandardową metodą dbthread.isReady()
). Nie miałbym nic przeciwko, gdyby wątek aplikacji blokował się, dopóki wątek db nie był gotowy.
Thread.join()
nie wygląda na rozwiązanie - wątek db jest zamykany tylko podczas zamykania aplikacji.
while (!dbthread.isReady()) {}
rodzaj działa, ale pusta pętla pochłania wiele cykli procesora.
Jakieś inne pomysły? Dzięki.