Учебный курс: Многопоточное программирование
Кафедра: ИС Факультет: ИТиП
Лабораторная работа №3. Атомарные операции, сигналы и критические секции.
Выполнил: Группа: 5516
Преподаватель:
Вариант |
Атомарные операции |
Сигналы |
Критические секции |
||||||
1 |
2 |
3 |
4 |
5 |
1 |
2 |
1 |
2 |
|
12 |
× |
× |
× |
× |
Осуществить безопасное декрементирование целочисленной переменной из двух потоков за счёт использования атомарной декрементации(Interlocked.Decrement).
Осуществить подсчёт суммы элементов массива целых чисел из двух потоков за счёт использования атомарного присваивания со сравнением (Interlocked.Add). Первый поток должен обрабатывать чётные элементы массива, второй поток – нечётные.
Реализовать расчёт значения длительно вычисляемой математической функции (на выбор студента, например, факториала, фрактала; при необходимости допускается имитировать задержку при выполнении такого расчёта) с возможностью досрочно прервать выполнение расчёта (AutoResetEvent). Первый поток должен вычислять значение функции, а второй – отображать процентное выполнение расчёта с возможностью его прервать.
1. Реализовать имитацию перевода денежных средств с одного счёта на другой с использованием транзакции, за счёт применения критической секции (Monotor). Для моделирования счёта использовать отдельный класс. Обеспечить обработку трёх запросов на перевод денежных средств с одного счёта, поступивших с минимальным временным интервалом.
Творческая часть: реализовать имитацию подсчёта количества просмотров страниц сайта, для каждого из которых запрос обрабатывается в отдельном потоке с помощью пула потоков. Использовать атомарные операции (Interlocked)..
отсутствуют
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.