Hi zusammen,
ich bin gerade dabei in meinem Programm einen Thread zu starten, dafür habe ich ein eigenes Thread Object implementiert:
Die run() Methode von meinem Thread sieht dabei wie folgt aus:
Also im grund mache ich hier nur folgendes,
Ich besitze eine ArraList<LinkedList<MyObj>>, diese darin befindlichen MyObj-Objekte möchte ich je nach ZoomStufe in eine neue ArraList<LinkedList<MyObj>> speichern, wobei mehrere Einträge der ursprünglichen Daten zu einem Eintrag zusammen gefasst wurden.
Wenn ich dies jetzt aber aufrufe, und ich mir den counterTwo ausgebe, dann sehe ich dass die Zahl mal höher und mal kleiner ist, folglich wurde der Thread dann mehrmals gestartet?
Bei dem AUfruf des Thread für ich aber folgende Kontrolle druch:
Hat mir jemand einen Tip?
ich bin gerade dabei in meinem Programm einen Thread zu starten, dafür habe ich ein eigenes Thread Object implementiert:
Die run() Methode von meinem Thread sieht dabei wie folgt aus:
Code:
@Override
public void run() {
fittedList = new ArrayList<LinkedList<MyObj>>();
int counter = 0;
int counterTwo = 0;
int zoomMultiplikator = this.zoomMulti;
LinkedList<MyObj> actList = new LinkedList<MyObj>();
for (LinkedList<MyObj> list : actualData.actualCondensedData) {
if(counter == zoomMultiplikator){
if(actList!= null){
fittedList .add(actList);
}
actList = new LinkedList<MyObj>();
counter = 0;
}
if (counter < zoomMultiplikator) {
for (MyObj pb : list) {
if(!actList.contains(pb)){
actList.add(pb);
}
}
counter++;
}
counterTwo++;
if(counterTwo%1000 == 0){
System.out.println("Thread " + counterTwo);
}
}
if(actList!= null){
fittedList.add(actList);
}
System.out.println(" ");
System.out.println("FITTED LIST" + fittedList.size());
}
Also im grund mache ich hier nur folgendes,
Ich besitze eine ArraList<LinkedList<MyObj>>, diese darin befindlichen MyObj-Objekte möchte ich je nach ZoomStufe in eine neue ArraList<LinkedList<MyObj>> speichern, wobei mehrere Einträge der ursprünglichen Daten zu einem Eintrag zusammen gefasst wurden.
Wenn ich dies jetzt aber aufrufe, und ich mir den counterTwo ausgebe, dann sehe ich dass die Zahl mal höher und mal kleiner ist, folglich wurde der Thread dann mehrmals gestartet?
Bei dem AUfruf des Thread für ich aber folgende Kontrolle druch:
Code:
public void startThread(final int fitMulti) {
// interrupts the actual Thread
if (this.activeThread != null){
if(activeThread.isAlive()){
System.out.println("Actual Thread is alive - interrupt thread");
activeThread.interrupt();
}
}
{
FittedThread thread = new FittedThread(data.actualData, fitMulti);
thread.start();
this.activeThread = thread;
}
}
Hat mir jemand einen Tip?