hallo,
ich möchte eine Multithread-Anwendung in Java schreiben. In der Anwendung gibt es 4 Threads inclusive Hauptthread. Ein Buffer wird von jeweils zwei Threads zugegriffen. Ein Thread füllt es, während der Andere es leert. Deswegen möchte ich die Wait/Notify Mechanismen dazu anwenden, damit ein Thread unnötig arbeiten muss, wenn der Buffer leer ist.
Ich habe folgende massen eingegangen. aber ich habe die Wait/Notify nicht richtig anwenden können. weiss ich nicht, was ich noch dazu machen sollte.
1. Zweite Thread starten.
2. In erstem Thread irgendwo mache ich:
in zweiten Thread in Run sieht wie folgt aus:
Das Problem ist, dass ich den Thread nicht aufwecken kann, nachdem es geschlafen hat.
könnte jemand mir hilfen, wie ich so was realisieren kann? vielen Dank und frohes Weihnachten wünsche Euch noch...
Burkut
ich möchte eine Multithread-Anwendung in Java schreiben. In der Anwendung gibt es 4 Threads inclusive Hauptthread. Ein Buffer wird von jeweils zwei Threads zugegriffen. Ein Thread füllt es, während der Andere es leert. Deswegen möchte ich die Wait/Notify Mechanismen dazu anwenden, damit ein Thread unnötig arbeiten muss, wenn der Buffer leer ist.
Ich habe folgende massen eingegangen. aber ich habe die Wait/Notify nicht richtig anwenden können. weiss ich nicht, was ich noch dazu machen sollte.
1. Zweite Thread starten.
2. In erstem Thread irgendwo mache ich:
Code:
while (n.hasNext()) { Node node = n.next(); EList<Datum> args = node.getArguments(); if (args.size() == 0) { synchronized (qc.getConsumers()) { qc.getConsumers().add(node); // Buffer ist den beiden bekannt. n.remove(); } } } synchronized (zweitenThread) { zweiten Thread.notify(); }
Code:
while (!stop) { try { getConsumer(); getNewConsumer(); checkForStopThread(); synchronized (this) { synchronized (qc.getReadyConsumers()) { while (qc.getReadyConsumers().size() == 0) { this.wait(); } } } } catch (InterruptedException e) { e.printStackTrace(); } } }
könnte jemand mir hilfen, wie ich so was realisieren kann? vielen Dank und frohes Weihnachten wünsche Euch noch...
Burkut
Comment