Vielen Dank für eure Hilfe ich hab das Problem aber schon gelöst.
Liebe Grüße Stefan
Vielen Dank für eure Hilfe ich hab das Problem aber schon gelöst.
Liebe Grüße Stefan
Das selbe hab ich schon mal gelesen bring mich aber nicht weiter.
Stimmt die while schleife hab ich vergessen.
Das hab ich doch so gemacht.
Ich habe es noch mal anders gemacht. Weiß aber nicht ob das so richtig ist.
public synchronized void put(int bestand) {
if (!empty)
try {
wait();
}
catch(InterruptedException e) {}
System.out.println("Einlagern: "+bestand);
buffer = bestand;
empty = false;
notify();
}
public synchronized int get() {
if (empty)
try {
wait();
}
catch(InterruptedException e) {}
System.out.println("Entnehmen: "+buffer);
empty = true;
notify();
return buffer;
}
Könnte es so funktionieren :
synchronize einlagern(){
while(!lager){
try{
wait();
}catch(InterruptException e){}
}
notifyAll();
}
Ein wunder schönen guten Abend wünsche ich.
Ich komme nicht weiter habe mir viele sachen zu Threads durchgelsen aber er gelingt mir nicht diese Aufgabe zu lösen.
Wenn ich die Klassen hier habe :
class Lager {
private int bestand;
private static final int kapazität = 20;
public void einlagern() {
if (bestand+5 <= kapazität) {
bestand+=5;
System.out.println("nach einlagern :" + bestand);
}
}
public void entnehmen() {
if (bestand-3 >= 0) {
bestand-=3;
System.out.println("nach entnehmen :" + bestand);
}
}
}
//Ein ProduzentThread-Objekt versucht in einer Endlosschleife jeweils //Waren einzulagern.
class ProduzentThread extends Thread {
private Lager lager;
ProduzentThread(Lager lager) {
this.lager = lager;
}
public void run() {
while(true){
lager.einlagern();
}
}
}
//Analog dazu versucht ein KonsumentThread-Objekt in einer Endlosschleife jeweils Waren aus dem Lagerbestand um zu entnehmen. Der Quelltext ist analog zum Produzenten gestaltet. In der While-Schleife wird hier die Methode lager.entnehmen()aufgerufen.
In einer Main-Methode wird jeweils ein Objekt der Klasse Lager, ProduzentThread und KonsumentThread angelegt (vgl. Skizze). Anschließend wird erst pt.start() und dann kt.start() aufgerufen.
Jetzt soll:
Mit den Methoden wait() und notifyAll(), um sicherzustellen, dass der ProduzentThread wartet, bis im Lager wieder genügend freie Kapazität für eine neue Lieferung vorhanden ist und dass, der KonsumentThread wartet, bis das Lager mindestens einen Bestand von 3 hat, bevor er etwas aus dem Lager entnimmt. Es sollen auch die veränderten Methoden einlagern() und entnehmen() der Klasse Lager an gegeben werden.
Ich weiß nicht weiter bitte um Hilfe.
Liebe Grüße Stefan
Ich hab aber auch nochmal eine andere Frage.
Wie mache ich, dass die Methode copyFile soll eine IdentException zurückgeben, wenn die übergebenen Strings identisch sind. Es soll dafür eine eigene Klasse IdentException geschrieben werdenbund bauen Sie diese Exception in die obige Anwendung ein. ??
LG Stefan
Hi vielen dank schon mal für eure Hilfe.
Aber Old Thrashbarg ich soll doch an den möglichen stellen eine Exception werfen.
Und so wie du sagst ist ja zu allgemein.
Ich habe eine frage ob mir jemand dort weiter helfen kann ich weiß nicht ob das richtig ist was ich gemacht habe.
Ich bitte um Hilfe.
Also :
Es sollen die Abfragen ergänzt werden und eine adäquate Behandlung der möglicherweise auftretenden Standardexceptions an allen relevanten Stellen.
[JAVA]
import java.io.*;
public class FileCopy
{
static void copy( InputStream in, OutputStream out ) throws IOException
{
// Hier findet der eigentliche Kopiervorgang statt, diese Methode ist
//nicht Gegenstand der Betrachtung …
}
static void copyFile( String src, String dest )
{
FileInputStream fis = null;
FileOutputStream fos = null;
fis = new FileInputStream(src );
fos = new FileOutputStream( dest );
copy( fis, fos );
if ( fis != null )
if ( fos != null )
}[/JAVA]
Ich habe auch einen Lösungsansatz weiß aber nicht ob das so richtig ist oder ob noch etwas fehlt.
Meine Lösung :
if ( fis != null )
try{
fis.close();
} catch(IOException e){
; }
if ( fos != null )
ry{
fos.close();
} catch(IOException e){
; }
Ich hab noch mal eine andere Frage wie kann man den kleinetsen schlüssel in einem baum zurück geben. Mit der Iterativ und einmal Rekursiv lösung??
Ok danke schon mal ich glaube ich hab verdstanden was du meinst.
Der Schlüssel 80 befindet sich im rechten teil baum ganz unten.
Hallo zusammen ich hoffe mir kann jemand weiterhelfen weil ich nicht zurecht komme.
Folgendes problem:
Geben Sie die Folge von Anweisungen an, die nötig ist, um – für diesen speziellen
Baum - den Schlüssel des hervorgehobenen Knotens (Schlüssel 80) auf dem Bildschirm
auszugeben.
public void proz(Baum einBaum){}