Parallel Braings - Параллельные Мозги - Семинар 3
Семинар 3 - Многопоточное программирование. Библиотека .NET System.Threading. Lock-Free программирование
Проведен 27 октября, 8 ноября
1.
Теоретико-множественная модель параллельного исполнения программ на базе потоков, разделяющих общую память:
Проблемы с потоками. Эдвард А. Ли (стр. 5-7)
Устоявшиеся подходы к параллельному программированию ПК: Shared-memory vs Message-passing
2.
Примеры работы с потоками в .NET и основные способы борьбы с недетерминизмом потоков в .NET:
Исходный код примеров в VS2005 (15kb):
- Примеры гонок потоков и деадлоков. Interleavings
- Семафоры (Semaphore)
- Блокировки (Lock). Виды блокировок, виды Deadlock'ов
- Блокировки (Lock). Проблемы блокирования на public-доступных объектах, искл.ситуации и блокировки
- Мьютексы (Mutex)
- События (AutoResetEvent и ManualResetEvent)
- Пул потоков (Thread Pool)
- Асинхронный вызов делегатов
Основной материал по библиотеке System.Threading:
Работа с потоками в C#. Часть первая
Работа с потоками в C#. Часть вторая
3.
Понятие Lock\Wait-Free программирования, примеры, преимущества и сложности подхода, пример (C++\C#) Lock-Free хэша (Map\Dictionary).
Доклад подготовлен Макаровым Д.А.
Ссылки на полезные статьи:
- Основные проблемы программирования многоядерных процессоров на основе потоков
(Shameem Akhter and Jason Roberts, Intel Corp.)
- Параллельные вычисления и функциональные языки программирования (pHaskell)
- Способы отладки многопоточных приложений (Shameem Akhter and Jason Roberts, Intel Corp.)
- Простая и безопасная реализация многопоточности в Windows Forms
- Еще раз о многопоточности в Windows Forms
- Технология Hyper-Threading и компьютерные игры
- То, что вам никто не говорил о многозадачности в Windows
- Мониторинг исполнения потоков в приложениях WinXP/2000
Сайт создан в системе
uCoz