Когда я синхронизирую методы или использую синхронизированные блоки в моих методах в игре для Android? - PullRequest
11 голосов
/ 14 марта 2010

Я пытаюсь написать простой графический код в Android и заметил несколько блоков synchronized ().

В чем причина этого и как я узнаю, когда я должен "синхронизировать" мой код?

1 Ответ

26 голосов
/ 14 марта 2010

synchronized блоки операторов обычно используются в параллельном программировании ( многопоточные приложения ), где ваше приложение использует много потоков. В качестве примера для игры для Android у вас может быть один поток с обработкой клиента, другой для сервера, один для порождения других процессов и т. Д.

Само ключевое слово обеспечивает доступ к вашим методам по одному потоку за раз, что делает их поточно-ориентированными. Если ваше приложение будет обмениваться ресурсами без использования операторов synchronized, вы рискуете тупик .

Deadlock приведет к зависанию , т.е. процесс зависает. Следует избегать тупиковых ситуаций любой ценой, особенно в том, что касается размера процессора мобильного телефона.

...