Мне интересно, как именно "синхронизировано" работает в java.
Скажем, я моделирую настольную игру, состоящую из нескольких полей. Я реализую поля как класс (поле) и плату как класс (Board), который содержит несколько полей. Позвольте еще сказать, что я смоделировал метод moveTo (Player pl) в поле, чтобы игрок переместился в это поле. Каждый игрок представлен потоком.
Хотя все потоки должны выполнять некоторые действия одновременно (например, перекатывать их кубики), должен быть только один игрок, который перемещается за раз.
Как я могу это гарантировать? Достаточно ли сделать так, чтобы метод moveTo (Player pl) был синхронизирован? Или мне нужен каскадный метод в Board, чтобы убедиться, что только один игрок перемещается одновременно? (Или есть лучшее решение)?
Чтобы довести это до конца:
"Синхронизировал" блокировку метода в КАЖДОМ объекте, который имеет этот метод, или будет синхронизирован метод блокировки только в объекте, который в настоящее время используется?
И если это второй случай: существует ли простой способ блокировки метода для каждого объекта, который реализовал этот метод?
Спасибо!!!