Автор: Александр Алексеев | Томский политехнический университет
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Для всех
Длительность:
12:09:00
Студентов:
1158
Выпускников:
190
Данный курс, посвящен описанию создания многопоточных приложений в среде Visual Studio 2010 с использованием .NET Framework. В частности, какие библиотеки, и какие классы необходимы для создания многопоточных приложений, какие инструменты Visual Studio 2010 используются для отладки этих приложений.
На сегодняшний день, многоядерные процессоры используются не только в серверных платформах, но и в персональных компьютерах, которые позволяют нескольким потокам выполняться одновременно. И в будущем, число ядер в процессоре будет только увеличиваться. Уже сегодня можно использовать возможности аппаратного обеспечения – и распараллеливать код, чтобы распределить работу между несколькими процессорами. Ранее распараллеливание требовала низкого уровня обработки потоков и блокировок. Visual Studio 2010 и .NET Framework 4 поддерживают параллельное программирование путем предоставления новой среды CLR, новые типы библиотек классов и новые средства диагностики. Данные возможности упрощают разработку параллельных программ, так что можно написать эффективное и масштабируемое приложение без необходимости работать непосредственно с потоками или пулом потоков.
 

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
13 минут
Введение в параллельное программирование
В рамках данной лекции будут рассмотрены следующие вопросы: определение, назначение параллельного программирования; многоядерные вычисления; множественные потоки команд/данных; ускорение; закон Амадал; закон Густафсона-Барсиса.
Оглавление
    -
    Лекция 2
    10 минут
    Параллельное программирование в .NET Framework 4.0
    В рамках данной лекции будут рассмотрены следующие вопросы: введение в параллельное программирование .NET Framework 4; библиотека PFX; компоненты библиотеки PFX; библиотека параллелизма задач и данных (TPL)
    Оглавление
      -
      Создание первого приложения
      В данном практическом занятии, будет создано простое многопоточное приложение, в котором будет реализовано три различных потока.
      Оглавление
        -
        Лекция 3
        19 минут
        Многопоточность в .NET Framework
        В рамках данной лекции будут рассмотрены следующие вопросы: определение многопоточности; основы многопоточной обработки; класс Thread; создание вторичных потоков; назначение приоритета потока; управление потоками; пул потоков CLR.
        Оглавление
          -
          Лекция 4
          39 минут
          Синхронизация потоков
          В рамках данной лекции будут рассмотрены следующие вопросы: оператор lock; классы синхронизации в .NET Framework; Interlocked; класс Monitor; методы класса Monitor: Wait, Pulse и PulseAll; класс Mutex; класс Semaphore; класс Barrier; класс ReaderWriterLockSlim; события синхронизации потоков. При использовании в программе нескольких потоков иногда необходимо координировать их выполнение. Процесс координации потоков называется синхронизацией. К синхронизации прибегают в тех случаях, когда двум или большему числу потоков необходимо получить доступ к общему ресурсу, который в каждый момент времени может использовать только один поток. Синхронизацию потоков можно осуществлять несколькими способами описанных в данной лекции.
          Оглавление
            -
            Лекция 5
            16 минут
            Введение в асинхронные задачи
            В рамках данной лекции будут рассмотрены следующие вопросы: использование класса Task; класс TaskFactory; примеры различных сортировок массива с использованием принципа параллелизма.
            Оглавление
              -
              Лекция 6
              20 минут
              Параллелизм задач
              В рамках данной лекции будут рассмотрены следующие вопросы:определение параллелизма задач; создание и запуск задачи; создание вложенных задач; ожидание задач; обработка ошибок в задачах; отмена выполнения заданий; продолжения; продолжения и Task <TResult>; продолжения и дочерние задачи; продолжения предыдущих задач; несколько продолжений одной задачи; планировщики заданий и пользовательский интерфейс.
              Оглавление
                -
                Создание приложения с распараллеливанием задач
                В данном практическом занятии будет рассмотрен процесс создания простого приложения с использованием многозадачности.
                Оглавление
                  -
                  Лекция 7
                  14 минут
                  Параллелизм данных
                  В рамках данной лекции будут рассмотрены следующие вопросы: Класс Parallel; Parallel.Invoke; Parallel.For; Parallel.FoReach.
                  Оглавление
                    -
                    Создание приложения с распараллеливанием данных
                    В рамках данного практического задания будет рассмотрен пример использования параллельных циклов Parallel.For и Parrallel.Foreach для распараллеливания данных.
                    Оглавление
                      -
                      Лекция 8
                      25 минут
                      Parallel LINQ (PLINQ)
                      В рамках данной лекции будут рассмотрены следующие вопросы: описание LINQ; примеры LINQ - запросов; работа с простыми массивами данных; работа с массивами и коллекциями классов; введение в PLINQ; метод AsParallel; пример использования PLINQ запроса.
                      Оглавление
                        -
                        Лекция 9
                        25 минут
                        PLINQ Операторы и методы
                        В рамках данной лекции будут рассмотрены следующие вопросы: перечесление ParallelExecutionMode; метод WithDegreeOfParallelism; метод AsOrdered; метод Range; метод Repeat; метод AsUnordered; метод AsSequential; метод WithMergeOptions; метод ForAll.
                        Оглавление
                          -
                          Создание приложения с использованием PLINQ
                          В рамках данного практического занятия, будет создано консольное приложение, которое получает из СУБД MS SQL данные по сотрудникам и оформленными ими заказами (стоимость, количество, наименования продукта) с помощью LINQ и PLINQ запросов.
                          Оглавление
                            -
                            Лекция 10
                            21 минута
                            Параллельные коллекции
                            В рамках данной лекции будут рассмотрены следующие вопросы: классы параллельных коллекций; интерфейс IProducerConsumerCollection<T>; пример использования обычной коллекции с применением параллелизма.
                            Оглавление
                              -
                              Лекция 11
                              1 час 6 минут
                              Параллельные коллекции. Низкоуровневая синхронизация
                              В рамках данной лекции будут рассмотрены следующие вопросы: SpinLock; SpinWait; параллельные коллекции; ConcurrentQueue; ConcurrentStack; ConcurrentBag; ConcurrentDictionary; BlockingCollection; создание экземпляра класса BlockingCollection; создание поставщика; создание потребителя.
                              Оглавление
                                -
                                Тест 6
                                51 минута
                                -
                                Создание Windows приложения с использованием элемента BackgroundWorker
                                В данном практическом занятии, будет подробно рассмотрен процесс создания простого многопоточного Windows приложения с использованием элемента управления BackgroundWorker.
                                Оглавление
                                  -
                                  Создание многопоточного Windows - приложения
                                  В рамках данного практического задания реализуется многопоточное Windows приложение, которое асинхронно выполняет три различных метода.
                                  Оглавление
                                    -
                                    Создание многопоточного Silverlight - приложения
                                    В рамках данного практического будет создан простой Silverlight проект, выполняющий асинхронно три различных потока.
                                    Оглавление
                                      -
                                      Лекция 12
                                      33 минуты
                                      Отладка приложений в Visual Studio 2010
                                      В данной лекции будут рассмотрены следующие вопросы: отладка приложения в Visual Studio 2010; установка точки останова; запуск отладчика; пошаговое выполнение программы; окно Autos; окно Locals; окно Watch; окно Immediate; окно Threads; окно Parallel Task; окно Parallel Stacks.
                                      Оглавление
                                        -
                                        Отладка однопоточного приложения в Visual Studio 2010
                                        В рамках данного практического занятия, будет рассмотрен процесс создания и отладки однопоточного приложения с использованием Visual Studio 2010.
                                        Оглавление
                                          -
                                          Отладка многопоточного приложения
                                          В данном практическом занятии будет рассмотрен процесс отладки многопоточного приложения с использование окна Threads.
                                          Оглавление
                                            -
                                            Отладка многопоточного приложения с использованием окна стеков
                                            В рамках данного практического занятия, будет рассмотрен пример отладки параллельного приложения, с использованием окна вызова стеков.
                                            Оглавление
                                              -
                                              Отладка многопоточного приложения с использованием окна задач
                                              Практическое занятие посвящено процессу отладки параллельного приложения с использованием инструмента Parallel Task.
                                              Оглавление
                                                -
                                                Лекция 13
                                                18 минут
                                                Отладка приложений в Visual Studio 2010
                                                В рамках данной лекции будут рассмотрены следующие вопросы: введение в Concurrency Visualizer; представление использования центрального процессора (CPU Utilization); введение в Concurrency Visualizer; представление потоков (Threads); представление Cores; секция отчетов.
                                                Оглавление
                                                  -
                                                  Тест 8
                                                  24 минуты
                                                  -
                                                  Пример оптимизации параллельного приложения
                                                  В данном практическом занятии будет рассмотрен пример оптимизации параллельного приложения с использованием Currency Visualizer.
                                                  Оглавление
                                                    -
                                                    1 час 40 минут
                                                    -
                                                    Владимир Каширин
                                                    Владимир Каширин

                                                    Вопрос по Курсу: "Параллельное программирование с использованием MS VisualStudia 2010".

                                                    При компиляции Самостоятельного задания (одновременная отрисовка прямоугольников, эллипсов и выдача в текст-бокс случайного числа) среда предупреждает: suspend - устаревшая команда; примените monitor, mutex и т.п.

                                                    Создаётся впечатление, что Задание создано в более поздней среде, чем VS 2010.