Membro desde: 17/03/2003 15:24:48
Mensagens: 10
Offline
Tenho uma dúvida...
Quando uma thread entra em um método sincronizado de um objeto e adquire a trava, se a thread chamar sleep() ela continuará com a trava para o objeto durante o tempo em que ela dorme ou o objeto é liberado durante esse tempo??
17/03/2003 16:07:54
Assunto:
Rafael Steil
Administrador
Membro desde: 31/08/2002 02:35:53
Mensagens: 5983
Localização: São Paulo
Offline
Ela continua com o lock, porem outras threads para outros objetos poderao rodar.
Rafael
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
Membro desde: 04/12/2002 16:26:48
Mensagens: 552
Localização: BRAZIL
Offline
Continuando a duvida do bruno...
E se as outras threads (todas elas, vamos supor) estiverem esperando para obter o lock do objeto que tah com a thread dorminhoca?
O sistema vai "parar" eqto o lock estiver com a tread dormindo???
Eduardo Rodrigues
Belo Horizonte - MG
17/03/2003 16:49:59
Assunto:
Rafael Steil
Administrador
Membro desde: 31/08/2002 02:35:53
Mensagens: 5983
Localização: São Paulo
Offline
Se voce tiver 5 threads, todas para o mesmo objeto, todas - 1 vao estar esperando enquanto uma delas estiver rodando. Como somente pode haver um lock por objeto, e levando em considecao que sleep() nao libera o lock, todas as outras do mesmo objeto estarao esprando ate a que estiver rodando terminar.
Rafael
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"