Я моделирую игру, в которой одновременно перемещаются несколько игроков (потоков). Информация о том, где находится игрок в данный момент, хранится дважды: у игрока есть переменная "hostField", которая ссылается на поле на доске, и каждое поле имеет ArrayList, в котором хранятся игроки, которые в настоящее время находятся в этом поле.
Я не очень доволен тем, что у меня избыточная информация, но я не нашел способа избежать этого, не перейдя через большой набор данных.
Однако, когда игрок перемещается из одного поля в другое, я хотел бы убедиться (1), что избыточная информация остается связанной (2) теперь никто не манипулирует этим полем.
Поэтому мне нужно сделать что-то вроде
synchronized(player, field) {
// code
}
Что не возможно, правильно?
Что мне делать?:)