Witam.
Bawie sie troche watkami w Javie i mam pytanie: kiedy przy synchronizacji dostepu to danych objektu powinienem uzywac:
...
synchronized(this){
//critical code
}
A kiedy powieninem uzywac "lockowania" na jakims konkretnym obiekcie:
private Object lock = new Object();
...
synchronized(lock){
//critical code
}
Wiem ze temat watkow jest obszerny i nie ma dobrej, zlej odpowiedzi, ale moze w tej sytuacji macie jakas generalna regule, kiedy uzywac co? A moze uwazacie, ze ta technika jest stara i powienienem juz tylko uzywac java.util.concurrent?
Dzieki za odpowiedzi!