Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Конкурентный доступ к ресурсам при многопоточной обработке

Определение типа объекта в программе | Создание объектов с помощью метода newInstance | Знакомство с механизмом рефлексии | Демонстрационный пример | Пояснения к примеру | Демонстрационный пример | Как организовать нить | С нитями выполнения нужно быть осторожным | Завершение и останов нити | Интерфейс Runable |


Читайте также:
  1. ECN И ПРЯМОЙ ДОСТУП
  2. HUAWEI WS880 САМЫЙ ДОСТУПНЫЙ АС-РОУТЕР
  3. VII. Хирургия. Навык хирургии позволяет персонажу снимать критические состояния с других персонажей и себя. Последний уровень навыка доступен только персонажу класса Медик.
  4. А) Доступ в рыцарские ряды в теории
  5. Алла Недоступ
  6. Анализ обеспеченности организации трудовыми ресурсами
  7. Анализ обеспеченности предприятия материальными ресурсами.

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

Иногда это не существенно, например, если ресурс используется только на чтение. Но иногда это может приводить к печальным последствиям.

Типичный пример — это приложение, выполняющее списание средств со счета. Такое приложение перед списанием должно проверить наличие средств на счете, а потом выполнить собственно списание. Если может выполняться несколько экземпляров такого алгоритма в разных нитях, то они могут проверить наличие средств и определить, что средства для каждого отдельного списания на счете есть. После чего обе нити выполнят списание, хотя общая сумма может превышать сальдо счета.

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


Дата добавления: 2015-08-18; просмотров: 50 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Диспетчеризация нитей| Демонстрационный пример

mybiblioteka.su - 2015-2024 год. (0.013 сек.)