PDA

Visualizza la versione completa : Java e concorrenza


cristiano_longo
28-04-2004, 11:13
Salve a tutti. Ho un piccolo problema in Java. Devo far "addormentare" una applicazione e farla risvegliare quando si verifica un evento. Qualcuno ha notizie in merito?

Grazie

blueice
28-04-2004, 13:32
Utilizza un ciclo infinito; All'interno del while inserisci il tuo check (evento) e nel caso di esito positivo chiami il metodo.

trevor
28-04-2004, 13:40
Originariamente inviato da blueice
Utilizza un ciclo infinito; All'interno del while inserisci il tuo check (evento) e nel caso di esito positivo chiami il metodo.


e per non appesantire troppo ti conviene fare un thread che poi metti in sleep per un pò, magari 200ms, così l'effetto è quasi immediato ma non cicla in continuazione

Xadoom
28-04-2004, 13:50
Originariamente inviato da blueice
Utilizza un ciclo infinito; All'interno del while inserisci il tuo check (evento) e nel caso di esito positivo chiami il metodo.
Però così blocchi l'applicazione durante il ciclo, credo che la soluzione migliore sia un Thread.
:ciauz:

LeleFT
28-04-2004, 17:55
Originariamente inviato da cristiano_longo
Salve a tutti. Ho un piccolo problema in Java. Devo far "addormentare" una applicazione e farla risvegliare quando si verifica un evento. Qualcuno ha notizie in merito?

Grazie

Cosa intendi per addormentare un'applicazione e risvegliarla al verificarsi di un evento?
Che tipo di evento? Se intendi far dormire un intero programma e risvegliarlo solo quando viene sollevato un evento dal sistema operativo, la cosa risulta alquanto scomoda in Java.

Se invece intendi "addormentare" una parte di un'applicazione (un suo oggetto, o simili), allora, oltre alle valide alternative che ti sono già state proposte, te ne aggiungo un'altra: il paradigma Observer/Observable. E' un paradigma di programmazione offerto da Java (io non l'ho trovato in altri linguaggi, anche se penso che non sia una prerogativa solo di Java), molto bello.
Consente di definire un oggetto come "osservato" e una serie di oggetti come "osservatori". Quando l'oggetto osservato subisce un cambiamento (il tipo di cambiamento "sensibile" lo definisci tu), gli oggetti osservatori vengono automaticamente notificati del cambiamento da Java (non ti devi preoccupare tu della notifica) e ricevono una copia dell'oggetto modificata che possono, quindi, esaminare e agire di conseguenza.

Prova a dare un'occhiata qui per maggiori info (se ti serve un esempietto te lo posto volentieri):

OBSERVER (http://java.sun.com/j2se/1.4.2/docs/api/java/util/Observer.html)
OBSERVABLE (http://java.sun.com/j2se/1.4.2/docs/api/java/util/Observable.html)

Ciao. :ciauz:

Gmalex
28-04-2004, 18:04
:stordita: scusa, una curiosità, ma il nome "Java e concorrenza" cosa c'entra con questo post? :dottò:

cristiano_longo
28-04-2004, 21:29
concorrenza a risorse condivise.

Loading