Главная » Разработка для Android » Синхронизация и структуры данных – JAVA ДЛЯ ANDROID

0

 

Android поддерживает функционально насыщенную библиотеку коллекций Java (Java Collection Library) для стандартной версии Java (Standard Edition Java). Внимательно ознакомившись с этой библиотекой, вы заметите, что большинство коллекций существует в двух вариантах: List и Vector, HashMap и Hashtabl е и т. д. В версии Java 1.3 появляется совершенно новый фреймворк коллекций, который полностью замещает старые коллекции. Однако для обеспечения обратной совместимости старые версии не выходят из употребления.

Тем не менее новым коллекциям следует отдавать предпочтение по сравнению с их устаревшими аналогами. Они обладают более унифицированным интерфейсом программирования приложений, для их поддержки существуют более удобные инструменты и т. д. Но важнее всего, пожалуй, то, что все устаревшие коллекции синхронизированы. Может показаться, что идея синхронизации очень стоящая, но, как показано в следующем примере, ее может быть недостаточно:

Хотя все случаи использования Vector Полностью синхронизированы и каждый вызов к одному из его методов гарантированно будет атомарным, программа не выполнится. Полная синхронизация Vector, разумеется, является недостаточной, поскольку код делает копию его размера и использует ее даже после того, как другой поток может изменить этот размер.

Поскольку сама по себе синхронизация методов объекта коллекции так часто является недостаточной, коллекции в новом фреймворке вообще не синхронизированы. Если код, обрабатывающий коллекцию, так или иначе должен синхронизироваться, синхронизация самой коллекции является избыточной мерой, связанной к тому же с растратой ресурсов.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии