Skip to content

Latest commit

 

History

History
41 lines (31 loc) · 3.21 KB

README.adoc

File metadata and controls

41 lines (31 loc) · 3.21 KB

lab 9

  1. Используя TPL создайте длительную по времени задачу (на основе Task) на выбор:

    • поиск простых чисел (желательно взять «решето Эратосфена»);

    • перемножение матриц;

    • умножение вектора размера 100000 на число;

    • создание множества Мандельброта;

    • другой алгоритм.

  2. Выведите идентификатор текущей задачи, проверьте во время выполнения — завершена ли задача и выведите ее статус.

  3. Оцените производительность выполнения используя объект Stopwatch на нескольких прогонах. Дополнительно: Для сравнения реализуйте последовательный алгоритм.

  4. Реализуйте второй вариант этой же задачи с токеном отмены CancellationToken и отмените задачу.

  5. Создайте три задачи с возвратом результата и используйте их для выполнения четвертой задачи. Например, расчет по формуле.

  6. Создайте задачу продолжения (continuation task) в двух вариантах:

    • C ContinueWith - планировка на основе завершения множества предшествующих задач;

    • На основе объекта ожидания и методов GetAwaiter(), GetResult().

  7. Используя Класс Parallel распараллельте вычисления циклов For(), ForEach(). Например, обработку (преобразования) последовательности, генерация нескольких массивов по 1000000 элементов, быстрая сортировка последовательности, обработка текстов. Оцените производительность по сравнению с обычными циклами.

  8. Используя Parallel.Invoke() распараллельте выполнение блока операторов.

  9. Используя Класс BlockingCollection реализуйте следующую задачу: Есть 5 поставщиков бытовой техники, они завозят уникальные товары на склад (каждый по одному) и 10 покупателей — покупают все подряд, если товара нет — уходят. В вашей задаче: спрос превышает предложение. Изначально склад пустой. У каждого поставщика своя скорость завоза товара. Каждый раз при изменении состоянии склада выводите наименования товаров на складе.

  10. Используя async и await организуйте асинхронное выполнение метода.