Zaczynam przygodę z programowaniem wielowątkowym, do tego czasu miałem bardzo mało do czynienia z tym. Proszę o wyrozumiałość :D
Pierwsze pytanie jakie mam to jeżeli używam jakiejś kolekcji thread-safe np. ConcurrentLinkedQueue i mam sytuację taką, że jest pusta to na wywołuję kolejka.wait(). No i czekamy. W momencie gdy coś jest wrzucane do kolejki chcę powiadomić inne wątki więc wołam kolejka.notifyAll() no ale nie mogę tego wywołać gdy nie jestem w bloku synchronized. Czy to poprawne, żeby otwierać blok synchronized tylko po to, żeby wywołać notifyAll? Bo coś mi się nie wydaje... Jak to zrobić poprawnie? Bo rozumiałbym to tak, że jeżeli używam kolekcji thread-safe to nie muszę się już zbytnio zajmować synchronizacją tej kolejki bo synchronizacja powinna być robiona gdzieś "pod spodem".