test_glava5x

advertisement
1. Из-за каких ресурсов возникает соперничество при «гонке данных»?
Варианты ответа:
a) оперативная память;
b) оперативная память
c) файловый ресурс;
d) аппаратный ресурс;
e) внешняя память;
2. Представлен данный метод:
3.
/// <summary>
4.
/// В трех разных потоках
5.
/// моделируется параллельная работа со счетом
6.
/// трех членов одной семьи - мужа, его жены и дочери
7.
/// </summary>
8.
9.
staticvoidGo()
{
10.
//Создание потоков для трех клиентов
11. Thread h = new Thread(Husband);
12.
Thread w = new Thread(Wife);
13.
Thread d = new Thread(Daughter);
14. //запуск их методов на выполнение
15. h.Start();
16. d.Start();
17. w.Start();
18.
//Пора подвести итоги работы
19. d.Join();
20. h.Join();
21. w.Join();
22. Console.WriteLine("Работа со счетом закончена" +
23. "\r\n" + "Мужположил = " + husband_sum.ToString() +
24.
"\r\n" + "Дочьсняла = " + daughter_sum.ToString() +
25.
"\r\n" + "Женасняла = " + wife_sum.ToString() +
26.
"\r\n" + "Баланс = " + account.Sum);
27. if (husband_sum
!= daughter_sum + wife_sum + account.Sum)
28. Console.WriteLine("Опасные операции над счетом!");
29.
}
Сколько потоков содержаться в данном методе?
Варианты ответа:
a) 2
b) 3
c) 4
d) 5
3. На использовании какого оператора языка С# основан простейший механизм блокировки?
Варианты ответа:
a)
b)
c)
d)
Lock.
Deadlock.
Stringname.
Threads.
4. Каким методом является метод Enter класса Monitor?
Варианты ответа:
a)
b)
c)
d)
Динамическим.
Статическим.
Классическим.
Прикладным.
5. При каком блоке снимается блокировка?
Варианты ответа:
a)
b)
c)
d)
Lock
Locker
Finally
TryEnter
6. Пусть, выполняя действия в критической секции, поток обнаруживает, что другой поток должен
выполнить некоторую обработку закрытого ресурса. В этой ситуации поток должен приостановить
свою работу, освободить временно ресурс, чтобы дать другому потоку провести необходимую
обработку, а затем уведомить приостановленный поток, что он может продолжить работу.
Какой метод/ы позволяет реализовать описанный сценарий?
Варианты ответа:
a)
b)
c)
d)
Wait
Pulse
PulseAll
TryEnter
7. Два основных метода класса SemaphoreSlim?
Варианты ответа:
a)
b)
c)
d)
Wait и Release
Wait и Pulse
Release и Pulse
Test_Unsafe и Go
8. Выберете верные утверждения.
Варианты ответа:
a) Если блокировка позволяет избавиться от гонки данных, то для спасения от клинча нужно
корректно организовать работу потоков, использующих несколько общих ресурсов.
b) Блокировка критических секций позволяет справиться с проблемой гонки данных.
c) Клинч никогда не возникнет в ситуации, когда два или более параллельно выполняемых
потока конкурируют за обладание двумя или более общими ресурсами.
d) Блокировка позволяет спастись от «гонки данных».
Download