Synchronized

ae eu estava tentando entender um codigo-fonte de um programa aqui, e me deparei com a palavra synchronized
O que é isso?? alguem pode me explicar?

O algoritmo segue abaico

boolean enqueue(Reference r) { /* Called only by Reference class */ synchronized (r) { if (r.queue == ENQUEUED) return false; synchronized (lock) { r.queue = ENQUEUED; r.next = (head == null) ? r : head; head = r; queueLength++; lock.notifyAll(); return true; } } }

é usado para controle de acesso, normalmente qdo se tem multi-threads evolvidas. No seu caso, vc está idicando para o método enqueue() acessar o objeto r (Reference r) de forma sincrona, a fim de nao ter problemas de concorrencia, impasse e coisas do genero.

Um texto simples explicando o conceito pode ser encontrado no link abaixo:

http://javaresende.com.br/servlet/artigo.PubMostraArtigo?artid=1&arquivo=A1/sincronismo.html