Лабораторная работа № 2.1
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ ДАННЫХ
Цель– ознакомление с темой совместного использования данных между задачами, рассмотрение основных проблем совместного использования данных, с которыми столкиваются при написании параллельных программ.
Содержание работы
1. Простая программа с общими данными (Listing 1).


Выполнение листинга 1 может производить следующие результаты.

Несомненно получен неверный результат. Повторный запуск программы производит широкий спектр результатов.

2. Выполнение без изменения данных – неизменный банковский счет (Листинг2).



3. Изоляция данных по соглашению (Листинг 3).



4. Использование TLS (Thread Local Storage) (Листинг 4).




5. Фабрика значения TLS, которая производит неожиданные результаты (Листинг 5).


Выполнение Листинга 5 дает следующие результаты:

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