Главная страница
Навигация по странице:

  • Результат выполнения программы

  • Контрольные вопросы

  • ООС2. Лабораторная работа 2 Управление потоками Выполнил студент группы пм118 Федотов Л. В. Цель работы


    Скачать 215.48 Kb.
    НазваниеЛабораторная работа 2 Управление потоками Выполнил студент группы пм118 Федотов Л. В. Цель работы
    Дата29.05.2020
    Размер215.48 Kb.
    Формат файлаdocx
    Имя файлаOOS2.docx
    ТипЛабораторная работа
    #126463

    Лабораторная работа №2

    «Управление потоками»

    Выполнил студент группы ПМ-1-18

    Федотов Л.В.

    Цель работы:

    Изучение работы потоков, процессов, стека; взаимодействие с потоками; управление потоками.

    Практическая часть



    1)Создание трех потоков:


    Конструктор класса myThread принимает 2 параметра: строку (имя потока), и номер до которого будет вестись счет в цикле. В конструкторе мы создаем поток, связанный с функцией func данного объекта. Далее мы присваиваем нашему потоку имя -Name созданного_потока.

    2) Для изменения времени выполнения многопоточной программы, увеличивающей значение глобальной переменной при увеличении количества потоков после вывода потока добавляем строку Thread.Sleep(1000)



    Результат выполнения программы: 



    3)



    Контрольные вопросы

    1. Один из основных принципов многопоточной архитектуры заключается в том, что не все потоки имеют одинаковые приоритеты. Несмотря на то что все потоки создаются одинаковыми (с Приоритетом Normal), не всегда целесообразно оставлять приоритеты потоков, установленные при их создании. Например, если производится фоновая печать одновременно с редактированием документа, то ясно, что отдавать половину вычислительных ресурсов процессу печати невыгодно. Намного лучше отдавать большее количество приложению — в этом случае оно будет быстрее реагировать на запросы пользователя, а печать все равно закончится, может быть несколько позже.




    1. Класс Timer позволяет выполнять потоки через повторяющиеся промежутки времени. При помощи класса Timer можно добавить в программу поток, работающий по принципу «вызвали и забыли». При создании экземпляра класса Timer указывается четыре параметра:

    -Callback. Делегат типа TimerCallback, представляющий метод, который будет вызываться таймером;

    -State. Объект, который передается методу TimerCallback. Его можно использовать для того, чтобы таймеру было доступно некоторое постоянное состояние. Если такой необходимости нет, то этот параметр может быть равным null;

    -DueTime. Количество миллисекунд перед первым срабатыванием таймера;

    -Period. Количество миллисекунд между срабатываниями таймера. В следующем листинге показан пример использования класса.

    1. Обратите внимание на вызов метода Dispose объекта Timer. Это делается для того, чтобы корректно освободить уже ненужные ресурсы, выделенные отдельному потоку. Метод Thread.Join позволяет «прикрепить» один поток к другому. Это означает, что первый, например, поток, будет ждать завершения второго, после чего будет запущен.


    Вывод:

    В данной лабораторной работе мы изучили работу потоков, процессов, стека; взаимодействие с потоками; управление потоками.


    написать администратору сайта