Article View: es.comp.lenguajes.java
Article #26211Re: Nuevos Eventos
From: Rehm
Date: Fri, 29 Jan 1999 00:00
Date: Fri, 29 Jan 1999 00:00
64 lines
2430 bytes
2430 bytes
On Fri, 29 Jan 1999 12:12:48 +0100, Jonathan Revusky <jrevusky@jet.es>
wrote:
>
>
>Rehm wrote:
>>
>> �Cual es la diferencia entre (1) y (2)?. Para que clonar.
>>
>> (1) Enumeration enum = listeners.clone().elements();
>> (2) Enumeration enum = listeners.elements();
>
>El motivo ser�a para que el c�digo sea "thread-safe". Admites la
>posibilidad de que en otro hilo de ejecuci�n, se agrega un listener,
>mientras est�s dentro del m�todo fireXXXEvent.
Ok, yo lo habia hecho de otra forma:
public void addMiEventoListener(MiEventoListener listener) {
syncronized(listeners){
listeners.addElement(listener);
}
}
public void removeMiEventoListener(MiEventoListener listener) {
syncronized(listeners){
listeners.removeElement(listener);
}
}
En mi caso, la lista listeners contiene objetos que implementan un
interfaz que tiene mas de un evento(es decir el interfaz
MiEventoListener tendria varias funciones/eventos). En esta
situacion, creo que seria mas correcto la forma anterior. Asi, se
puede recorrer la lista simultaneamente, sin que la llamada a un
evento bloquee la llamada a otro.
protected void fireMieventoUNO(miEvento evento) {
Enumeration enum = listeners.elements();
while (enum.hasMoreElements() {
MiEventoListener l = (MiEventoListener) enum.nextElement();
l.algoOcurreUNO(evento);
}
}
protected void fireMieventoDOS(miEvento evento) {
Enumeration enum = listeners.elements();
while (enum.hasMoreElements() {
MiEventoListener l = (MiEventoListener) enum.nextElement();
l.algoOcurreDOS(evento);
}
}
De esta forma seguiria siendo "thread-safe", no?
Gracias por tu tiempo.
Hasta pronto.
--------
Rehm
uov00973ARROBAcorreo.uniovi.es
Technical Details
Message-ID:
<36b1a3e1.14539066@news.mad.ttd.net>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<36a31f4f.20082697@news.bcn.ttd.net> <36A46E20.61C8123F@jet.es> <36a4978e.39892782@news.bcn.ttd.net> <36A4A2A6.1D5D3AD6@jet.es> <36b16f1c.1030852@news.mad.ttd.net> <36B197B0.D67929D2@jet.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,9c6533ba9b909cd5 X-Google-Attributes: gid1116f3,public From: uov00973ARROBA@correo.uniovi.es (Rehm) Subject: Re: Nuevos Eventos Date: 1999/01/29 Message-ID: <36b1a3e1.14539066@news.mad.ttd.net> X-Deja-AN: 438316252 Content-Transfer-Encoding: 8bit References: <36a31f4f.20082697@news.bcn.ttd.net> <36A46E20.61C8123F@jet.es> <36a4978e.39892782@news.bcn.ttd.net> <36A4A2A6.1D5D3AD6@jet.es> <36b16f1c.1030852@news.mad.ttd.net> <36B197B0.D67929D2@jet.es> Content-Type: text/plain; charset=ISO-8859-1 Organization: *** Mime-Version: 1.0 Newsgroups: es.comp.lenguajes.java