Hallo Leute,
ich wollte was mit Threads machen, weiß aber nicht wie...
Folgendes habe ich gebaut:
- eine Datei erzeugt mit 100 Zahlen, von 0 bis 100
Ich will daß 1 Methode diese Datei zeilenweise ausliest und jeweils die aktuelle Zeile an einen Thread weitergibt und dann einfach so lange wartet.
Also:
Insgesamt sollen 3 Threads das dann abarbeiten. Statt des Wartens könnte das ja auch eine komplexe Rechenoperation sein.
Ich weiß aber nicht wie ich das machen soll.
Ich brauche daß für nichts konkretes, wollte einfach nur mit Threads bischen rumfummeln.
Das habe ich bisher gebaut:
ich wollte was mit Threads machen, weiß aber nicht wie...
Folgendes habe ich gebaut:
- eine Datei erzeugt mit 100 Zahlen, von 0 bis 100
Ich will daß 1 Methode diese Datei zeilenweise ausliest und jeweils die aktuelle Zeile an einen Thread weitergibt und dann einfach so lange wartet.
Also:
Code:
1 Thread wartet 1 Sekunde und nimmt dann die nächste Zeile
2 Thread wartet 2 Sekunde und nimmt dann die nächste Zeile
3 Thread wartet 3 Sekunde und nimmt dann die nächste Zeile
4 Thread wartet 4 Sekunde und nimmt dann die nächste Zeile
5 Thread wartet 5 Sekunde und nimmt dann die nächste Zeile
6 Thread wartet 6 Sekunde und nimmt dann die nächste Zeile
7 Thread wartet 7 Sekunde und nimmt dann die nächste Zeile
8 Thread wartet 8 Sekunde und nimmt dann die nächste Zeile
9 Thread wartet 9 Sekunde und nimmt dann die nächste Zeile
10 Thread wartet 10 Sekunde und nimmt dann die nächste Zeile
Insgesamt sollen 3 Threads das dann abarbeiten. Statt des Wartens könnte das ja auch eine komplexe Rechenoperation sein.
Ich weiß aber nicht wie ich das machen soll.
Ich brauche daß für nichts konkretes, wollte einfach nur mit Threads bischen rumfummeln.
Das habe ich bisher gebaut:
Java:
package thread;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Main {
static Counter c1;
static Thread t1;
public static void main(String[] args) {
Counter c2 = new Counter(2);
c1 = new Counter(1);
t1 = new Thread(c1);
Counter c3 = new Counter(3);
Thread t2 = new Thread(c2);
Thread t3 = new Thread(c3);
// t1.start();
// t2.start();
// t3.start();
auslesen();
}
public static int auslesen() {
int delay = 0;
try {
File f = new File("c://temp/output.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String zeile;
while ((zeile = br.readLine()) != null) {
System.out.println(Integer.parseInt(zeile));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return delay;
}
}
package thread;
public class Counter implements Runnable {
int nummer;
int delay;
public Counter(int nummer) {
this.nummer = nummer;
}
@Override
public void run() {
System.out.println("Warte für " + delay + " Sekunden!");
}
}
Zuletzt bearbeitet von einem Moderator: