Главная / Программирование /
Параллельные вычисления и многопоточное программирование / Тест 6
Параллельные вычисления и многопоточное программирование - тест 6
Упражнение 1:
Номер 1
Что такое пул потоков?
Ответ:
 (1) массив потоков, создаваемых программистом 
 (2) множество потоков, созданное и управляемое операционной системой 
 (3) список потоков, поставленных в очередь на выполнение 
Номер 2
Класс ThreadingPool
- это:
Ответ:
 (1) статический класс 
 (2) динамический класс 
 (3) класс, создаваемый программистом 
 (4) библиотечный класс из пространства имен System.Threading
 
Номер 3
Объект класса ThreadingPool
– это:
Ответ:
 (1) динамический объект, создаваемый программистом всякий раз, когда необходимо работать с пулом потоков 
 (2) статический объект, имя которого совпадает с именем статического класса ThreadingPool
, связанный с пулом потоков, созданным операционной системой  
 (3) объект, созданный системой автоматически и предоставляемый программисту для использования 
Упражнение 2:
Номер 1
Укажите высказывания, истинные при работе с пулом потоков:
Ответ:
 (1) когда очередь задач не пуста, а в пуле потоков есть свободные потоки, то операционная система связывает задачу, стоящую первой в очереди, со свободным потоком, после чего поток переходит в состояние "готовность" 
 (2) когда поток завершает выполнение задачи, он удаляется из пула потоков 
 (3) метод Join
позволяет дождаться завершения задачи, выполняемой потоком из пула потоков 
Номер 2
Что не может делать программист при работе с пулом потоков?
Ответ:
 (1) создать пул потоков  
 (2) удалить пул потоков  
 (3) добавить поток в пул потоков  
 (4) поставить задачу в очередь на выполнение ее одним из потоков пула 
 (5) удалить задачу из очереди на выполнение  
Номер 3
Что может делать программист при работе с пулом потоков?
Ответ:
 (1) создать пул потоков  
 (2) удалить пул потоков  
 (3) добавить поток в пул потоков  
 (4) поставить задачу в очередь на выполнение ее одним из потоков пула 
 (5) удалить поток из пула потоков  
Упражнение 3:
Номер 1
Как связать метод, определяющий задачу, с потоком из пула?
Ответ:
 (1) конструктору класса ThreadPool
передать метод в качестве аргумента 
 (2) конструктору класса Thread
передать метод в качестве аргумента 
 (3) вызвать статический метод QueueUserWorkItem
класса ThreadPool
и передать ему метод в качестве аргумента 
 (4) вызвать статический метод Start
класса ThreadPool
и передать ему метод в качестве аргумента 
Номер 2
Какие утверждения справедливы относительно метода QueueUserWorkItem
?
Ответ:
 (1) метод позволяет поставить задачу в очередь на выполнение пулом потоков 
 (2) это статический метод 
 (3) это динамический метод 
 (4) метод реализован как функция 
 (5) метод реализован как процедура 
 (6) у метода две реализации 
Номер 3
Какие утверждения справедливы относительно параметров метода QueueUserWorkItem
?
Ответ:
 (1) в одной реализации у метода один параметр 
 (2) в другой реализации у метода два параметра 
 (3) первый параметр задает метод, выполняемый потоком 
 (4) второй параметр задает информацию, передаваемую методу, выполняемому в потоке 
 (5) фактический аргумент, передаваемый в качестве второго параметра, должен иметь тип object
 
Упражнение 4:
Номер 1
Какие утверждения являются истинными по отношению к пулу потоков?
Ответ:
 (1) пул потоков создается операционной системой и используется для улучшения возможностей ОС по управлению потоками. В программах на C# нет возможности непосредственного обращения к пулу потоков 
 (2) пул потоков создается операционной системой исключительно для выполнения методов пользователя. Операционная система не использует пул потоков в собственных интересах 
 (3) потоки из пула потоков могут выполнять задачи, создаваемые самой операционной системой, так и задачи, поставленные в очередь, при выполнении программ пользователей 
Номер 2
Укажите достоинства работы с пулом потоков:
Ответ:
 (1) повышается эффективность использования потоков 
 (2) повышается эффективность работы метода, передаваемого потоку 
 (3) облегчается синхронизация потоков 
 (4) исчезает необходимость собственного создания потоков 
Номер 3
Укажите недостатки работы с пулом потоков:
Ответ:
 (1) ухудшается эффективность использования потоков 
 (2) ухудшается эффективность работы метода, передаваемого потоку 
 (3) ухудшается возможность синхронизации потоков 
 (4) невозможно давать собственные имена потокам из пула, что затрудняет слежение за ходом выполнения задачи 
 (5) возникает необходимость собственного создания потоков 
Упражнение 5:
Номер 1
TPL (Task Parallel Library) – библиотека параллельных задач – это библиотека:
Ответ:
 (1) содержащая классические алгоритмы, допускающие распараллеливание 
 (2) впервые появившаяся в версии Framework.Net 4.0, облегчающая создание программ с параллельными вычислениями 
 (3) содержащая классы Task
, Parallel
и многие другие классы, позволяющие абстрагироваться от непосредственного создания и работы с потоками 
Номер 2
Какие утверждения справедливы относительно классов Task
и Task<TResult>
:
Ответ:
 (1) класс Task
является статическим классом, а класс Task<TResult>
- динамическим классом, позволяющим создавать экземпляры класса 
 (2) методы, передаваемые объектам класса Task
, являются процедурами, а классу Task<TResult>
передаются функции 
 (3) класс Task<TResult>
является наследником класса Task
 
 (4) конструктор класса Task<TResult>
имеет один параметр типа TResult
 
Номер 3
Сколько конструкторов у класса Task
?
Ответ:
 (1) 1 
 (2) 2 
 (3) 4 
 (4) 8 
Упражнение 6:
Номер 1
Каково назначение метода ContinueWith
класса Task
?
Ответ:
 (1) такого метода у класса нет 
 (2) позволяет организовать цепочку выполнения задач, когда следующая задача начинает выполняться после завершения предыдущей задачи 
 (3) позволяет синхронно выполнять несколько задач 
Номер 2
Какие свойства имеет класс Task
?
Ответ:
 (1) QueueUserWorkItem
 
 (2) Status
 
 (3) Wait
 
 (4) IsComleted
 
 (5) Start
 
Номер 3
Какие методы имеет класс Task
?
Ответ:
 (1) QueueUserWorkItem
 
 (2) ContinueWith
 
 (3) Wait
 
 (4) IsComleted
 
 (5) Start
 
Упражнение 7:
Номер 1
Укажите истинные высказывания:
Ответ:
 (1) метод Wait
класса Task
позволяет ждать завершения задачи в течение заданного интервала времени 
 (2) метод WaitAll
класса Task
позволяет ждать завершения массива задач 
 (3) методы Wait
класса Task
позволяют организовать взаимную блокировку задач 
Номер 2
Укажите истинные высказывания:
Ответ:
 (1) использование класса Task
предпочтительнее использования класса Thread
 
 (2) реализация работы с объектами класса Task
основана на использовании пула потоков 
 (3) при распараллеливании вычислений лучшие результаты по времени выполнения достигаются при использовании объектов класса Thread
в сравнении с использованием объектов класса Task
 
Номер 3
Каким отношением связаны классы Task
и Task<TResult>
?
Ответ:
 (1) класс Task
является наследником класса Task<TResult>
 
 (2) класс Task<TResult>
является наследником класса Task
 
 (3) класс Task
является клиентом класса Task<TResult>
 
 (4) класс Task<TResult>
является клиентом класса Task