Frage

Kann jemand Beispiele in Java angeben oder eine Klasse implementieren, die asynchron Zeilen aus einer Steckdose liest und jede Zeile in einen Blockierqueue einbringt. Angenommen, die Steckdose ist angeschlossen und der Blockierqueue und der Verbraucher existieren bereits.

Bearbeiten: Eine weitere Sache, es muss nach einer Zeit der Inaktivität die Möglichkeit haben, eine Auszeit zu erzielen, und sofort auf dem Befehl anhalten.

Es sind keine Hausaufgaben, ich konnte einfach keine vollständigen Beispiele dafür finden, wie es gut geht, und zuverlässig.

Vielen Dank.

War es hilfreich?

Lösung

Sie klingen so, als hätten Sie die Arbeit bereits erledigt, um ehrlich zu sein. Alles, was Sie tun müssen, ist ein Blockingqueue zu erstellen und einen Thread zu verarbeiten, der Ihr Verbraucher ist, denke ich. Angenommen, Sie haben einen DataNputStream 'in' ...

Etwas wie das:

BlockingQueue<String> receivedQueue = new LinkedBlockingQueue<String>();
public void run()
{
    while (true)
    {
        try
        {
            receivedQueue.put(in.readUTF());
        } catch (EOFException e)
        {
            ch.getClient().disconnect();
            break;
        } catch (IOException e)
        {
            break;
        } catch (InterruptedException e)
        {
            break;
        }
    }
    theQueueProcessor.interrupt();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top