Hallo,
ich versuche folgenden Code mit 4 parallelen Threads laufen zu lassen, weiß aber leider nicht genau, wie ich das bewerkstelligen soll...oder ob es überhaupt möglich ist. Der folgende Code läuft in einer Methode wo eigentlich nichts weiter passiert als Zuweisungen und die 4 doppelten for-Schleifen.
ich habe eine ArrayList in 4 Teile geteilt und jedes Teil durchläuft eigentlich das gleiche...nur dauert es Ewigkeiten bis das fertig ist.So kam mir der Gedanke aus diesen 4 doppelten for-Schleifen 4 Threads innerhalb der Methode zu machen wo sie parallel laufen sollen. Ist das überhaupt möglich?? Und wenn ja wäre Hilfe super. Vielen Dank schonmal!
ich versuche folgenden Code mit 4 parallelen Threads laufen zu lassen, weiß aber leider nicht genau, wie ich das bewerkstelligen soll...oder ob es überhaupt möglich ist. Der folgende Code läuft in einer Methode wo eigentlich nichts weiter passiert als Zuweisungen und die 4 doppelten for-Schleifen.
Java:
List<MyObject> head = a.subList(0, 2000);
List<MyObject> body = a.subList(2000, 5000);
List<MyObject> body2 = a.subList(5000, 8000);
List<MyObject> tail = a.subList(8000, a.size());
// List<Integer> tail = numbers.subList(4, 8);
for (int i = 0; i < head.size(); i++) {
a = head.get(i);
for (int j = 0; j < l.size(); j++) {
b = l.get(j);
fun1 = curr1;
fun2 = b.getName();
int d = dL.execute(fun1,fun2);
if(d<5){
int x=a.getName().length();
int y=b.getName().length();
if(x<y){
currCDO.add(a);
}
if(y<x){
a.setName(b.getName());
currCDO.add(a);
}
if(x==y){
currCDO.add(a);
}
break;}}}
for (int i = 0; i < body.size(); i++) {
a = body.get(i);
for (int j = 0; j < l.size(); j++) {
b = l.get(j);
fun1 = curr1;
fun2 = b.getName();
int d = dL.execute(fun1,fun2);
if(d<5){
int x=a.getName().length();
int y=b.getName().length();
if(x<y){
currCDO.add(a);
}
if(y<x){
a.setName(b.getName());
currCDO.add(a);
}
if(x==y){
currCDO.add(a);
}
break;}}}
for (int i = 0; i < body2.size(); i++) {
a = body2.get(i);
for (int j = 0; j < l.size(); j++) {
b = l.get(j);
fun1 = curr1;
fun2 = b.getName();
int d = dL.execute(fun1,fun2);
if(d<5){
int x=a.getName().length();
int y=b.getName().length();
if(x<y){
currCDO.add(a);
}
if(y<x){
a.setName(b.getName());
currCDO.add(a);
}
if(x==y){
currCDO.add(a);
}
break;}}}
for (int i = 0; i < tail.size(); i++) {
a = head.get(i);
for (int j = 0; j < l.size(); j++) {
b = l.get(j);
fun1 = curr1;
fun2 = b.getName();
int d = dL.execute(fun1,fun2);
if(d<5){
int x=a.getName().length();
int y=b.getName().length();
if(x<y){
currCDO.add(a);
}
if(y<x){
a.setName(b.getName());
currCDO.add(a);
}
if(x==y){
currCDO.add(a);
}
break;}}}
ich habe eine ArrayList in 4 Teile geteilt und jedes Teil durchläuft eigentlich das gleiche...nur dauert es Ewigkeiten bis das fertig ist.So kam mir der Gedanke aus diesen 4 doppelten for-Schleifen 4 Threads innerhalb der Methode zu machen wo sie parallel laufen sollen. Ist das überhaupt möglich?? Und wenn ja wäre Hilfe super. Vielen Dank schonmal!