Article View: es.comp.lenguajes.java
Article #26906Re: Semaforos?
From: Pere Vilas
Date: Mon, 23 Nov 1998 00:00
Date: Mon, 23 Nov 1998 00:00
53 lines
2086 bytes
2086 bytes
El tema es muy interesante... Pero ah� va una complicaci�n adicional. �Que
tal un procesador de transacciones?.
transaccion tr=transaccion.start();
tr.agregarEvento(Mievento evento);
tr.agregarEvento(Mievento evento);
tr.agregarEvento(Mievento evento);
tr.commit(); o bien tr.abortar();
�Alguien sabe como manejar esto de forma un poco gen�rica?.
En cuanto a tu pregunta, no se si esto te servir� per desde luego a mi me
funciona en un caso parecido al tuyo. Sesde luego, consume recursos pero
puede ser util si la cola no va estar casi nunca vacia
// esta clase puede ser est�tica
class Buffer {
public synchronized void put(MiEvento evento) {}
public synchronized evento get() {}
public synchronized boolean isEmpty() {}
}
// aqui tu servidor
// crear Buffer
// crear un consumidor y arrancarlo
//para cada cliente aceptado, crear un clienteProductor y arrancarlo
// aqui tu propia implementaci�n de cliente
class clienteProductor extends Thread {
Buffer buf;
Socket sk;
public productor(Buffer buf, Socket sk) { this.buf=buf; this.sk=sk;}
public synchronized run() { if el socket quiere grabar evento, hacer
put }
public void put() { buf.put(new evento()); }
}
class consumidor extends Thread {
Buffer buf;
public consumidor(Buffer buf) { this.buf=buf; }
public synchronized run() {
while(true) {
if (!buf.isEmpty())
evento=buf.get();
evento.grabaTe(fichero_log);
}
}
}
Saludos.
Technical Details
Message-ID:
<73c0rb$dd4$1@talia.mad.ibernet.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<36574A51.960FA5E5@caymasa.es> <36574C25.C636DE42@jet.es> <365757EE.AEEA8469@caymasa.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,181288f97891cea2 X-Google-Attributes: gid1116f3,public From: "Pere Vilas" <pvilas-quitar@apdo.com> Subject: Re: Semaforos? Date: 1998/11/23 Message-ID: <73c0rb$dd4$1@talia.mad.ibernet.es> X-Deja-AN: 414831687 References: <36574A51.960FA5E5@caymasa.es> <36574C25.C636DE42@jet.es> <365757EE.AEEA8469@caymasa.es> X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3 Organization: BES Inform�tica i Telecomunicacions, S.L. Newsgroups: es.comp.lenguajes.java