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

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

Упражнение 1:
Номер 1
Какие средства синхронизации можно использовать для организации взаимно-исключительный доступ к разделяемому ресурсу?

Ответ:

 (1) Mutex 

 (2) SemaphoreSlim 

 (3) lock 

 (4) ManualResetEvent 


Номер 2
Какой инструмент синхронизации можно использовать для организации потокобезопасного увеличения  счетчика целочисленного типа?

Ответ:

 (1) Monitor 

 (2) Interlocked 

 (3) SpinWait 

 (4) ConcurrentBag 


Номер 3
Какие средства синхронизации можно использовать для организации параллельного доступа нескольких потоков к ресурсу?

Ответ:

 (1) Semaphore 

 (2) Mutex 

 (3) AutoResetEvent 

 (4) lock 


Упражнение 2:
Номер 1
Какие средства  синхронизации можно использовать в нескольких приложениях?

Ответ:

 (1) Semaphore 

 (2) SemaphoreSlim 

 (3) Mutex 

 (4) Monitor 


Номер 2
Какие средства синхронизации используют вызовы ядра операционной системы?

Ответ:

 (1) Mutex 

 (2) ManualResetEvent 

 (3) AutoResetEvent 

 (4) Monitor 


Номер 3
Какой объект синхронизации можно использовать для предотвращения запуска нескольких копий одного приложения?

Ответ:

 (1) Monitor 

 (2) Mutex 

 (3) Interlocked 

 (4) SemaphoreSlim 


Упражнение 3:
Номер 1
Какие средства синхронизации позволяют организовать барьерную синхронизацию (один поток дожидается завершения нескольких потоков): 

Ответ:

 (1) Lock 

 (2) Monitor 

 (3) Mutex 

 (4) SemaphoreSlim 


Номер 2
Какие средства синхронизации позволяют избежать «мертвой блокировки» ожидающих потоков при возникновении сбоя внутри критической секции?

Ответ:

 (1) lock 

 (2) Semaphore 

 (3) Mutex 

 (4) AutoResetEvent 


Номер 3
Какие средства синхронизации можно использовать для ожидания событий из другого потока?

Ответ:

 (1) AutoResetEvent 

 (2) Semaphore 

 (3) Mutex 

 (4) lock 


Упражнение 4:
Номер 1
Объект Monitor поддерживает следующие возможности

Ответ:

 (1) попытка входа в критическую секцию в течение заданного интервала времени 

 (2) попытка входа в критическую секцию 

 (3) вход в критическую секцию нескольких потоков 

 (4) синхронизация на уровне операционной системы (межпроцессная синхронизация) 


Номер 2
Класс Monitor поддерживает следующие возможности:

Ответ:

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

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

 (3) получение информации о заблокированных потоках 

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


Номер 3
Класс Monitor поддерживает следующие возможности:

Ответ:

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

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

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

 (4) получение информации о числе заблокированных потоков 


Упражнение 5:
Номер 1
Метод WaitOne объекта синхронизации Semaphore не приводит к блокировке в случае

Ответ:

 (1) метод WaitOne всегда приводит к блокировке потоков в ожидании сигнала об освобождении объекта синхронизации 

 (2) объект Semaphore инициирован ненулевым начальным состоянием 

 (3) вызову метода WaitOne предшествовал вызов Release с ненулевым значением аргумента 

 (4) объект Semaphore установлен в ненулевое состояние с помощью метода Set 


Номер 2
Объект Semaphore обладает следующими возможностями:

Ответ:

 (1) освобождение заданного числа ожидающих потоков 

 (2) инициализация объекта с указанием максимального значения внутреннего счетчика 

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

 (4) инициализация объекта с указанием минимального значения внутреннего счетчика 


Номер 3
Освобождение или захват семафора приводит к исключению в следующих случаях

Ответ:

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

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

 (3) при захвате семафора значение внутреннего счетчика стало меньше заданного минимального значения 

 (4) освобождение и захват семафоров не приводит к исключениям 


Упражнение 6:
Номер 1
Сигнальные сообщения типа ManualResetEventSlim позволяют:

Ответ:

 (1) реализовать взаимно-исключительный доступ к фрагменту кода 

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

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

 (4) реализовать запуск только одного из ожидающих потоков 


Номер 2
Сигнальные сообщения типа AutoResetEvent позволяют:

Ответ:

 (1) реализовать взаимно-исключительный доступ к фрагменту кода 

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

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

 (4) реализовать запуск только одного из ожидающих потоков 


Номер 3
Сигнальные сообщения типа ManualResetEvent позволяют:

Ответ:

 (1) реализовать взаимно-исключительный доступ к фрагменту кода 

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

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

 (4) реализовать запуск только одного из ожидающих потоков 


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

Ответ:

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

 (2) конкурентные коллекции, не содержащие элементов, блокируют текущий поток при выполнении операции извлечения элемента 

 (3) применение конкурентных коллекций идентично применению обычных коллекций с блокировками типа lock 

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


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

Ответ:

 (1) конкурентные коллекции эффективнее обычных коллекций только в случае параллельной работы 

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

 (3) применение конкурентных коллекций идентично применению обычных коллекций с блокировками типа lock 

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


Номер 3
Конкурентные коллекции типа ConcurrentStack<T>, ConcurrentQueue<T>, ConcurrentBag<T> можно создавать:

Ответ:

 (1) все конкурентные коллекции можно создавать на базе соответствующих коллекций (ConcurrentStack<T> только на базе Stack<T>) 

 (2) на базе объектов любых типов, реализующих интерфейс IEnumerable 

 (3) конкурентные коллекции нельзя создавать на базе других объектов 

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


Упражнение 8:
Номер 1
Вызов метода CompleteAdding для объекта типа BlockingCollection<T> приводит к:

Ответ:

 (1) блокировке текущего потока 

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

 (3) генерации исключения при извлечении элемента вне зависимости от числа элементов в коллекции 

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


Номер 2
При выполнении операции добавления Add для объекта типа BlockedCollection<T>, содержащего максимальное число элементов и без вызова CompleteAdding, происходит:

Ответ:

 (1) блокировка текущего потока 

 (2) метод возвращает null 

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

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


Номер 3
Операция извлечения Take для объекта типа BlockedCollection<T>, не содержащего элементы и без вызова CompleteAdding, приводит

Ответ:

 (1) блокировка текущего потока 

 (2) метод возвращает null 

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

 (4) метод возвращает false 




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