Hi,
ich habe 2 Threads - einen Producer und einen Consumer Thread.
Der Producer erstellt eine File. Der Consumer benötigt die File um bei sich weiter zu machen - mal etwas vereinfacht dargestellt ohne try catch usw:
Das Problem was ich habe: if(f.wird noch genutzt) - wie kann ich feststellen, dass f noch von dem anderen Thread genutzt wird?
Hab das Bespiel mit einem Vector anstatt einer File gesehen. Dort wurde es so gelöst:
Weiß einer von euch, wie ich das ganz mit einer File machen kann?
Vielen Dank und besten Gruß.
ich habe 2 Threads - einen Producer und einen Consumer Thread.
Der Producer erstellt eine File. Der Consumer benötigt die File um bei sich weiter zu machen - mal etwas vereinfacht dargestellt ohne try catch usw:
Java:
class Producer extends Thread {
private File f;
Producer(File f){
this.f=f;
}
public void run(){
synchronized(v){
//Fülle f mit Daten
f.notify();
}
}
}
class Consumer extends Thread {
private File f;
Consumer(File f){
this.f=f;
}
public void run(){
synchronized(v){
if(f.wird noch genutzt){
f.wait();
}
//Mache was mit f
}
}
}
class Ausfuehren{
public static void main(String [] arg){
File f = new File("xyz");
Producer p = new Producer(f);
Consumer c = new Consumer(f);
p.start();
c.start();
}
}
Das Problem was ich habe: if(f.wird noch genutzt) - wie kann ich feststellen, dass f noch von dem anderen Thread genutzt wird?
Hab das Bespiel mit einem Vector anstatt einer File gesehen. Dort wurde es so gelöst:
Java:
if (vector.size() < 1) {
vector.wait();
}
Vielen Dank und besten Gruß.