игра брюс 2048
Главная / Программирование / Параллельное программирование с помощью языка C# / Тест 3

Параллельное программирование с помощью языка C# - тест 3

Упражнение 1:
Номер 1
При каких условиях поток находится в состоянии "Готовый"?

Ответ:

 (1) создан экземпляр класса Thread. 

 (2) объект типа Thread запущен с помощью метода Start 

 (3) поток выполняется на процессоре (ядре процессора) 

 (4) выполняющийся поток выгружен по истечении кванта времени 


Номер 2
В каких состояниях может находиться поток в процессе работы, если он не выполняет операций ввода-вывода, обращений к функциям ядра и не приостанавливается другими потоками?

Ответ:

 (1) "Готовый" 

 (2) "Ожидающий" 

 (3) "Приостановленный" 

 (4) "Выполняющийся" 


Номер 3
В какое состояние может перейти поток после завершения операции ввода-вывода, если до операции поток выполнялся?

Ответ:

 (1) "Приостановленный" 

 (2) "Ожидающий" 

 (3) "Выполняющийся" 

 (4) "Готовый" 


Упражнение 2:
Номер 1
Число рабочих потоков в пуле зависит от следующих факторов:

Ответ:

 (1) возможности вычислительной системы (число процессоров/ядер) 

 (2) загруженность вычислительной системы 

 (3) параметры пула потоков 

 (4) число рабочих элементов, добавленных в пул потоков 


Номер 2
Второй аргумент в вызове метода пула потоков задает:ThreadPool.QueueUserWorkItem(f, 5);

Ответ:

 (1) число потоков, которые будет выполнять метод f 

 (2) время до запуска метода f 

 (3) число копий метода f, которые добавляются в пул потоков 

 (4) аргумент метода f 


Номер 3
Для выполнения пользовательских задач с помощью пула потоков необходимо:

Ответ:

 (1) создать экземпляр класса ThreadPool 

 (2) задать параметры пула потоков 

 (3) использовать метод для добавления рабочих элементов QueueUserWorkItem 

 (4) использовать метод для начала работы пула Start 


Упражнение 3:
Номер 1
В рабочей функции потока используется переменная SomeVal типа int. Переменная является локальной для каждого потока в следующих случаях:

Ответ:

 (1) переменная объявлена внутри рабочей функции потока 

 (2) переменная класса, используемого в рабочей функции, объявлена с модификатором private. 

 (3) переменная класса, используемого в рабочей функции, объявлена с атрибутом ThreadStaticAttribute 

 (4) переменная объявлена внутри класса, содержащего рабочую функцию потока 


Номер 2
В рабочей функции потока используется переменная SomeVal типа int. Переменная является общей в следующих случаях:

Ответ:

 (1) переменная объявлена внутри рабочей функции потока 

 (2) переменная класса, используемого в рабочей функции, объявлена с модификатором public. 

 (3) переменная класса, используемого в рабочей функции, объявлена с атрибутом ThreadStaticAttribute 

 (4) переменная объявлена внутри класса, содержащего рабочую функцию потока 


Номер 3
Локальное хранилище потоков может использоваться для хранения 

Ответ:

 (1) только статические поля класса, доступного в рабочей функции потока 

 (2) только значимые типы (value types

 (3) только встроенные типы 

 (4) нет правильных ответов 


Упражнение 4:
Номер 1
Вызов метода Thread.Sleep(0) приводит к следующему:

Ответ:

 (1) текущий поток снимается с процессора, не дожидаясь завершения выделенного кванта времени 

 (2) поток продолжает выполняться без промедлений 

 (3) текущий поток блокируется на бесконечное время 

 (4) генерируется исключение 


Номер 2
Для передачи управления другому потоку, конкурирующему за ядро процессора, на котором выполняется данный поток без прекращения его работы, можно использовать:

Ответ:

 (1) Thread.Yield 

 (2) Thread.Sleep(0) 

 (3) Thread.Stop 

 (4) нет средств для передачи управления без прекращения работы текущего потока 


Номер 3
Метод Thread.Yield игнорируется в случае:

Ответ:

 (1) нет конкуренции за ядро, на котором выполняется текущий поток 

 (2) нет потоков с большим приоритетом, чем приоритет текущего потока 

 (3) приложение выполняется на одноядерном процессоре 

 (4) нет правильных ответов 


Упражнение 5:
Номер 1
В чем преимущества использования пула потоков для параллельной обработки?

Ответ:

 (1) рабочие потоки пула являются более легковесными объектами 

 (2) нет накладных расходов на создание и завершение потоков 

 (3) распределение рабочих элементов по потокам осуществляется автоматически 

 (4) пул потоков предоставляет встроенные механизмы ожидания завершения работы, механизм отмены 


Номер 2
Для ожидания завершения обработки пользовательских рабочих элементов пулом потоков можно использовать

Ответ:

 (1) ThreadPool.Wait 

 (2) ThreadPool.WaitAll 

 (3) Thread.Join 

 (4) нет правильных вариантов 


Номер 3
Объект ThreadPool позволяет:

Ответ:

 (1) автоматизировать распределение пользовательских задач по рабочим потокам пула 

 (2) получить информацию о распараллеливании выполнения пользовательских задач 

 (3) настраивать тип декомпозиции пользовательских задач 

 (4) нет правильных вариантов 


Упражнение 6:
Номер 1
Применение многопроцессного выполнения связано со следующими проблемами:

Ответ:

 (1) гонка данных  

 (2) взаимодействие процессов с помощью специальных средств 

 (3) сбой одного процесса приводит к сбою всех процессов 

 (4) накладные расходы, связанные с переключением контекста разных процессов 


Номер 2
Преимущества использования многопоточности для параллельных вычислений по сравнению с применением многопроцессности связаны:

Ответ:

 (1) потоки работают в едином адресном пространстве 

 (2) переключение потоков одного процесса занимает меньшее время по сравнению с переключением потоков разных процессов 

 (3) для взаимодействия потоков не требуется применения средств синхронизации 

 (4) сбой в одном потоке не приводит к сбою приложения 


Номер 3
Применение многопоточности для параллельных вычислений связано со следующими недостатками:

Ответ:

 (1) для взаимодействия потоков требуется применение специальных средств обмена сообщениями 

 (2) для согласования поведения потоков необходимо применение средств синхронизации 

 (3) сбой в одном потоке приводит к сбою приложения 

 (4) многопоточное выполнение приложения связано с накладными расходами, превышающими расходы при многопроцессном выполнении 




Главная / Программирование / Параллельное программирование с помощью языка C# / Тест 3