Parallel Braings - Параллельные Мозги - Семинар 3

Семинары по параллельному программированию

Рыбинск, РГАТА 2007

Список семинаров Форум Ссылки

Семинар 3 - Многопоточное программирование. Библиотека .NET System.Threading. Lock-Free программирование
Проведен 27 октября, 8 ноября

1.
Теоретико-множественная модель параллельного исполнения программ на базе потоков, разделяющих общую память: Проблемы с потоками. Эдвард А. Ли (стр. 5-7)

Устоявшиеся подходы к параллельному программированию ПК: Shared-memory vs Message-passing

2.
Примеры работы с потоками в .NET и основные способы борьбы с недетерминизмом потоков в .NET:

Исходный код примеров в VS2005 (15kb):

  1. Примеры гонок потоков и деадлоков. Interleavings
  2. Семафоры (Semaphore)
  3. Блокировки (Lock). Виды блокировок, виды Deadlock'ов
  4. Блокировки (Lock). Проблемы блокирования на public-доступных объектах, искл.ситуации и блокировки
  5. Мьютексы (Mutex)
  6. События (AutoResetEvent и ManualResetEvent)
  7. Пул потоков (Thread Pool)
  8. Асинхронный вызов делегатов

Основной материал по библиотеке System.Threading:
Работа с потоками в C#. Часть первая
Работа с потоками в C#. Часть вторая

3.
Понятие Lock\Wait-Free программирования, примеры, преимущества и сложности подхода, пример (C++\C#) Lock-Free хэша (Map\Dictionary).
Доклад подготовлен Макаровым Д.А.

Ссылки на полезные статьи:

  1. Основные проблемы программирования многоядерных процессоров на основе потоков (Shameem Akhter and Jason Roberts, Intel Corp.)
  2. Параллельные вычисления и функциональные языки программирования (pHaskell)
  3. Способы отладки многопоточных приложений (Shameem Akhter and Jason Roberts, Intel Corp.)

  4. Простая и безопасная реализация многопоточности в Windows Forms
  5. Еще раз о многопоточности в Windows Forms

  6. Технология Hyper-Threading и компьютерные игры
  7. То, что вам никто не говорил о многозадачности в Windows
  8. Мониторинг исполнения потоков в приложениях WinXP/2000
Сайт создан в системе uCoz