🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #26211

Re: Nuevos Eventos

#26211
From: Rehm
Date: Fri, 29 Jan 1999 00:00
64 lines
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-mail
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>

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