salve!
ich beschäftige mich grade mit threads, wie man sie bequem startet und die ergebnisse wieder einsammelt. soweit nichts aufregendes^^
meine frage: warten die , von threadtest1 erzeugten threads aufeinander?
oder anders formuliert: funktionieren threadtest1() und threadtest2() auf das ergebnis bezogen gleich?
ich hab leider keine idee wie ich das testen könnte
ich beschäftige mich grade mit threads, wie man sie bequem startet und die ergebnisse wieder einsammelt. soweit nichts aufregendes^^
meine frage: warten die , von threadtest1 erzeugten threads aufeinander?
oder anders formuliert: funktionieren threadtest1() und threadtest2() auf das ergebnis bezogen gleich?
ich hab leider keine idee wie ich das testen könnte
Java:
public class ThreadTest {
private Runtime runtime = Runtime.getRuntime();
private SortedMap<Float, Integer> map = new TreeMap<Float, Integer>();
int count = 0;
int cpu = runtime.availableProcessors();
@Test
public void threadtest1() {
for (int i = cpu; 0 < i; i--) {
threadStarter(i);
}
System.out.println(map.size() + " " + count + " test1");
}
@Test
public void threadtest2() {
Thread tt1 = new Thread(new tt());
Thread tt2 = new Thread(new tt());
tt1.start();
tt2.start();
try {
tt1.join();
} catch (InterruptedException ex) {
Logger.getLogger(ThreadTest.class.getName()).log(Level.SEVERE, null, ex);
}
try {
tt2.join();
} catch (InterruptedException ex) {
Logger.getLogger(ThreadTest.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(map.size() + " " + count + " test2");
}
public synchronized void mapcount() {
count++;
}
public void threadStarter(int max) {
Thread tt = new Thread(new tt());
tt.start();
try {
tt.join();
} catch (InterruptedException ex) {
Logger.getLogger(ThreadTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
class tt implements Runnable {
int max = 10000, hash = hashCode();
Random random = new Random();
public tt() {
}
@Override
public void run() {
for (int i = 0; i < max; i++) {
map.put(random.nextFloat(), hash);
mapcount();
}
System.out.println(" tt fertig " + hash);
}
}
}