Podepnę się pod temat i zapytam. Załóżmy, że mam taką sytuację jak kolega wyżej opisał. Klasę i w niej metodę gdzie mamy blok synchronziowany.
Kopiuj
void method() {
synchronized(obj) {
...
}
}
Poza tym mam też metodę synchronizowaną:
Kopiuj
synchronized void method2() {
...
}
Czy w momencie gdy jeden wątek wykonuje metodę pierwszą i znajduje się w bloku synchronizowanym, drugi wątek może rozpocząć wykonywanie metody method2? Czy musi czekać, aż pierwszy wątek opuści blok? Załóżmy, że w method2 nie operujemy na obiekcje obj, który jest synchronizowany przez pierwszą metodę. Gdyby obie metody były synchronziowane to tylko jedna mogła by być wykonywana w danym czasie. Jak jednak będzie w sytuacji jaką opisałem powyżej?