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

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

Упражнение 1:
Номер 1
Выберете правильные утверждения 

Ответ:

 (1) каждая задача выполняется в одном рабочем потоке 

 (2) несколько задач могут выполняться в одном рабочем потоке 

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

 (4) ни одно из указанных утверждений не верно 


Номер 2
Выберете правильные утверждения

Ответ:

 (1) создание задачи приводит к созданию нового потока 

 (2) запуск задачи с помощью метода StartNew приводит к созданию потока 

 (3) запуск задачи с помощью метода Start приводит к созданию потока 

 (4) нет правильных утверждений 


Номер 3
Выберете правильные утверждения

Ответ:

 (1) метод Task.Factoy.StartNew создает новый поток для задачи 

 (2) метод Task.Factory.StartNew запускает задачу в рабочем потоке и дожидается завершения работы 

 (3) метод Start запускает задачу в текущем потоке 

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


Упражнение 2:
Номер 1
В каких случаях задача завершается со статусом Faulted

Ответ:

 (1) во вложенных задачах возникли исключения 

 (2) задача была отменена 

 (3) в дочерних задачах возникли исключения 

 (4) в задаче возникло исключение 


Номер 2
Родительская задача ParentTask завершается без исключений, во вложенной (не дочерней) задаче innerTask возникает исключение. Статусы задач:

Ответ:

 (1) ParentTask.Status: RanToCompletion, innerTask.Status: Faulted 

 (2) ParentTask.Status: Faulted, innerTask.Status: Faulted 

 (3) ParentTask.Status: Canceled, innerTask.Status: Faulted 

 (4) ParentTask.Status: Canceled, innerTask.Status: Canceled 


Номер 3
При возникновении необработанного исключения в задаче:

Ответ:

 (1) статус задачи Faulted 

 (2) статус задачи Canceled 

 (3) статус задачи не определен 

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


Упражнение 3:
Номер 1
Какой фрагмент кода гарантирует запуск метода f1 до запуска метода f2.

Ответ:

 (1) Task t1 = new Task(f1); t1.Start(); f2();  

 (2) Task t1 = Task.Factory.StartNew(f1); f2();  

 (3) Task t1 = new Task(f1); t1.Start(); Thread.Sleep(500); f2();  

 (4) ни один из предложенных вариантов 


Номер 2
Обращение к свойству Result задачи, которая еще выполняется

Ответ:

 (1) блокирует поток до завершения задачи 

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

 (3) возвращает null 

 (4) ни один из предложенных вариантов 


Номер 3
Объявление Task t2 = t1.ContinueWith(..) гарантирует

Ответ:

 (1) запуск задачи t2 только после завершения задачи t1 

 (2) запуск задачи t2 до завершения задачи t1 

 (3) запуск задачи t2 при определенном статусе завершения задачи t1 

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


Упражнение 4:
Номер 1
Задачи-продолжения позволяют:

Ответ:

 (1) реализовать обработчик отмены задач 

 (2) запускать задачу при определенном статусе завершения предшествующей задачи 

 (3) запускать задачу при определенном статусе завершения предшествующей задачи 

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


Номер 2
Задачи-продолжения запускаются после завершения задачи предшественника 

Ответ:

 (1) вне зависимости от исхода задачи 

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

 (3) если не было исключения в предшествующей задаче 

 (4) в зависимости от статуса завершения предшествующей задачи и параметров задачи-продолжения 


Номер 3
Для ожидания завершения задачи типа Task<int> можно использовать

Ответ:

 (1) обращение к свойству Result 

 (2) вызов метода Wait  

 (3) вызов статического метода Task.WaitAll с указанием задачи в качестве параметра 

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


Упражнение 5:
Номер 1
Для отмены задачи необходимо

Ответ:

 (1) вызвать метод Cancel для объекта типа Task 

 (2) вызвать метод Cancel для объекта типа CancellationTokenSource 

 (3) вызвать метод Cancel для объекта типа CancellationToken 

 (4) вызвать метод Abort для объекта типа Task 


Номер 2
Для обработки исключений, возникающих в задаче, блок try обрамляет:

Ответ:

 (1) вызов метода ожидания задачи t.Wait() 

 (2) вызов метода запуска задачи t.Start() 

 (3) объявление задачи Task t = new Task(..); 

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


Номер 3
Выберете правильные утверждения

Ответ:

 (1) родительская задача всегда дожидается завершения вложенных задач 

 (2) родительская задача дожидается только вложенных задач, объявленных с параметром AttachedToParent 

 (3) родительская задача дожидается только дочерних вложенных задач 

 (4) нет правильных утверждений 


Упражнение 6:
Номер 1
Статус задачи WaitingForActivation соответствует ситуации:

Ответ:

 (1) задача добавлена в очередь пула потоков и готова к выполнению 

 (2) задача объявлена, но было вызова метода Start 

 (3) задача дожидается завершения вложенных задач 

 (4) задача дожидается завершения предшествующих задач 


Номер 2
Какие методы типа Task и  объекта типа Task предполагают блокировку текущего потока до завершения задачи

Ответ:

 (1) t.Wait 

 (2) Task.WaitAll 

 (3) t.ContinueWith 

 (4) Task.Factory.StartNew 


Номер 3
Метод Flatten применяется для

Ответ:

 (1) преобразования типа AggregateException в тип Exception 

 (2) назначения обработчиков конкретных исключений 

 (3) получения списка исключений, возникнувших при исполнении задач 

 (4) нет верных утверждений 




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