Синхронізація та структури даних – JAVA ДЛЯ ANDROID

&nbsp

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

Проте новим колекціям слід віддавати перевагу в порівнянні з їх застарілими аналогами Вони мають більш уніфікованим інтерфейсом програмування додатків, для їх підтримки існують більш зручні інструменти і т д Але найважливіше, мабуть, те, що всі застарілі колекції синхронізовані Може здатися, що ідея синхронізації дуже стоїть, але, як показано в наступному прикладі, її може бути недостатньо:

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

Оскільки сама по собі синхронізація методів обєкта колекції так часто є недостатньою, колекції в новому фреймворку взагалі не синхронізовані Якщо код, що обробляє колекцію, так чи інакше повинен синхронізуватися, синхронізація самої колекції є надмірним заходом, повязаної до того ж з розтратою ресурсів

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*