В данный момент мой код использует тот же ArrayList
, чтобы принять решение о том, куда перемещать каждый объект. Но я хочу дать каждому потоку свой ArrayList
и заполнить каждый поток на основе object
.
Я пытался synchronize
метод, который заполняет ArrayList
но это не решает мою проблему.
for(Object o : s.objects) {
new Thread(() -> {
ArrayList<Location> locations = new ArrayList<Location>();
locations = s.getLocation(o.curLoc(), o.moves);
location nextLoc;
nextLoc = o.chooseBestLoc(locations);
o.setLocation(nextLoc);
}.start();
}
В настоящий момент я думаю, что это должно создать новый ArrayList
для каждого потока, но поведение того, где движутся мои объекты, является неправильным. Они перемещаются в, казалось бы, случайные места.
Как мне дать каждому потоку свой ArrayList
? или сделать так, чтобы у них не было одинаковых ArrayList
?