Declarativa Declarativa
 

 

Entrada

Produtos

Serviços

Inquiridor
Aplicações internet à medida
Auditoria informática
Subcontratação para I&D

Plataforma de conteúdos

Tecnologia

Web Information Systems
Web Application Maker
InterProlog

A empresa

Apresentação institucional

Sincronização de threads

Como fazer uma thread suspender-se à espera de que "algo interessante" seja feito por outras threads?

  • Qualquer objecto pode ter associado um monitor, no sentido de [Hoare 78];
  • Basta que a sua classe tenha métodos declarados zonas críticas, com synchronized, e neles usar (ver classe Object):
    • wait: torna a thread corrente Not Runnable até alguém libertar o objecto com notify
    • notify, notifyall: avisa thread(s) "penduradas" de que o objecto está liberto, tornando-a(s) Runnable
  • Exemplo do tutorial
  • Monitores de Java são reentrantes: a mesma thread pode "readquirir o lock" sobre o mesmo objecto várias vezes.

Os recursos criticos são os objectos, e as zonas (de código) críticas são os métodos (ou blocos) qualificados com synchronized


Comentários: mc@declarativa.com Março de 2002 up

 Declarativa - Serviços de Informática, Lda.
  www.declarativa.com, info@declarativa.com  fax: +351-22-030-1511  tel: +351-22-030-1580
UPTEC - Parque de Ciência e Tecnologia da Universidade do Porto (GoogleMap)
Rua Actor Ferreira da Silva 100 4200-298 Porto Portugal