Hi an alle,
kann mir vielleicht jemand bei folgendem Problem helfen?
Ich habe also eine Klasse die von Thread erbt
in etwa so:
Als nächstes möchte ich eine liste von WriterThreads gleichzeitig starten.
Das Problem ist nun, dass meist nur ein Thread richtig läuft (oder keiner)
die anderen mir folgenden Fehler ausgeben:
Ich habe das Programm, dass gestartet wird hard im code für jeden Thread kopiert,
also greift jeder thread auf ein eigenes Programm zu.
Was ist der Fehler?
kann mir vielleicht jemand bei folgendem Problem helfen?
Ich habe also eine Klasse die von Thread erbt
in etwa so:
Code:
public class WriterThread extends Thread {
public WriterThread(String readerName) {
super();
}
@Override
public void run() {
super.run();
process(programmpath);
}
private Vector<String> process(String cmd) throws Exception {
Vector<String> lines = new Vector<String>();
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = null;
while((line=input.readLine()) != null){
lines.add(line+System.lineSeparator());
}
int exitVal = pr.waitFor();
if(exitVal != 0){
lines.add("FAIL"+System.lineSeparator());
String exception = "";
for(String exLine : lines){
exception += exLine+System.lineSeparator();
}
throw new Exception(exception);
}
return lines;
}
}
Als nächstes möchte ich eine liste von WriterThreads gleichzeitig starten.
Code:
. . .
for(WriterThread wt : writers){
wt.start();
}
. . .
Das Problem ist nun, dass meist nur ein Thread richtig läuft (oder keiner)
die anderen mir folgenden Fehler ausgeben:
Code:
returns 0x00000057 (Falscher Parameter.)
also greift jeder thread auf ein eigenes Programm zu.
Was ist der Fehler?