Pytania i odpowiedzi (2 / 3)
Wilusz_PWiR
52.
aka metoda służy do usypiania wątku?
wait()
53.
Kiedy wątek uśpiony metodą wait() się uruchamia?
Po wywołaniu metody notify() w innym wątku oraz jego zakończeniu
54.
Ile wątków budzi metoda notifyAll()?
Wszystkie w ramach tego samego obiektu
55.
Dokładność czasu na który usypiany jest wątek w metodzie sleep()
Zależy od precyzji timerów systemowych
56.
Co dzieje się w metodzie yield() jeśli nie zostanie znaleziony wątek o wyższym priorytecie?
Dotychczasowy wątek kontynuuje wykonywanie
57.
Metoda sleep() usypia wykonywanie wątku na określony czas, jednostka w której podawany jest ten czas to:
ilisekundy i (nieobowiązkowo) nanosekundy
58.
Czy wykonanie tego samego kodu źródłowego może dać różne rezultaty?
Tak
59.
Do czego służy metoda isAlive()
do sprawdzenia czy dany proces ciągle się wykonuje
60.
Aby rozpocząć wykonywanie się nowego wątku należy użyć metody:
start()
61.
Co zwróci metoda Semafor.toString()
identyfikator oraz liczbę obecnych pozwoleń
62.
Czy liczba pozwoleń jest stała?
nie i jest ustalana przez użytkownika
63.
Jaki jest efekt metody acquire():
zmniejszenie liczby zezwoleń i pozwolenie na dostęp wątku do zasobu
64.
Jaką wartość musi mieć licznik „hold count” w ReentrantLock, aby współdzielone zasoby były wolne?
hold count = 0
65.
Jaki interfejs implementuje klasa ReentrantLock?
Interfejs Lock
66.
W jakim bloku musi być umieszczona metoda unlock() w ReentrantLock, tak aby nie doszło do żadnych błędów:
W bloku „finally”
67.
Do czego służy mechanizm Executors?
Tworzenie puli wątków.
68.
Ile wątków w jednym czasie przyjmuje pula wątków?
Nie więcej niż ilość zdefiniowana w trakcie tworzenia puli wątków.
69.
Jaka jest dobra praktyka pracując z pulami wątków?
Dobre rozumienie i właściwy dobór zadań do strojenia puli wątków.
70.
Za co odpowiedzialna jest metoda notify()?
Powiadomienie i wybudzenie jednego z oczekujących wątków
71.
Jednym ze sposobów aby wątek znalazł się w stanie WAITING jest?
Thread.join()
72.
Do jakiej klasy należy metoda notifyAll()?:
Object
73.
Którą z metod uruchomić oczekiwanie na zakończenie CountDownLatch?
await();
74.
Którą z metod zmniejszyć licznik po wykonaniu pracy przez każdy serwis?
countDown();
75.
Którą z metod otrzymamy aktualny stan licznika?
getCount();
76.
Która z metod zmieni stan wątku thread 1 na Terminated?
Thraed1.kill()
77.
W jakim stanie znajduje się watke po wywołaniu metody .start()?
Runnable
78.
Jak nazywa się metoda, która wprowadza wątek w stan oczekiwania czasowego?
sleep
79.
Kiedy InterruptedException nie wystąpi podczas wywołania na wątku metody interrupt()?
kiedy wątek nie jest zablokowany metodami join(), wait() ani sleep()
80.
W jakiej klasie dostępna jest metoda interrupt()?
Thread
81.
Która metoda należy do klasy Object?
wait()
82.
Każdy proces posiada fragment kodu nazywany ______, w którym m.in. może on zmieniać ogólnodostępne zmienne, aktualizować tablice, nadpisywać pliki.
Krytyczna sekcja
83.
Rozwiązanie problemu krytycznej sekcji musi spełniać trzy z podanych wymagań:
I. Wzajemne wykluczanie
II. Progres
III. Nieograniczone oczekiwanie
IV. Ograniczone oczekiwanie
D. I, II, IV
84.
Które sformułowanie opisuje ograniczone oczekiwanie?
Kiedy wątek wysyła komunikat o chęci wejścia do swojej sekcji krytycznej, jest ograniczona ilość wątków, które mogą przed nim wejść do krytycznej sekcji, tak by wątek mógł wejść do swojej krytycznej sekcji.
85.
W jakiej kolejności dane są dodawane do kolejki (struktura danych), a w jakiej kolejności odbywa się ich pobieranie?
Dane są dodawane na koniec kolejki, a pobierane z początku kolejki
86.
Ile maksymalnie procesów może być wykonywanych współbieżnie, aby możliwe było zapewnienie synchronizacji przy pomocy algorytmu Petersona?
2
87.
Które sformułowanie opisuje pojęcie wzajemnego wykluczania?
Jeśli jeden proces wykonuje kod w swojej sekcji krytycznej, to w tym czasie inne procesy nie mogą wykonywać kodu w swoich sekcjach krytycznych.
88.
Która z metod klasy Thread nadaje priorytet wątkowi?
setPriority()
89.
“Wszystkie wątki są zablokowane, program nigdy się nie wykona.” - do której sytuacji odnosi się to zdanie?
zakleszczenie
90.
Która z metod klasy Thread jawnie wywołuje rozpoczęcie wątku?
start()
91.
Co to jest Semafor?
Chroniona zmienna
92.
Co to jest zakleszczenie?
Sytuacja, w której co najmniej dwie różne akcje czekają na siebie nawzajem
93.
Czym jest Mutex:
Jest blokadą, którą może uzyskać tylko jeden wątek
94.
int TestAndSet(int &lock) {
int initial = lock;
lock = 1;
return initial;
}
void enter_CS(X)
{
while test-and-set(X) ;
}
void leave_CS(X)
{
X = 0;
}
W powyższym rozwiązaniu X jest lokalizacją pamięci związaną z CS i jest inicjowana na 0. Które z poniższych zdań jest prawdziwe?
Powyższe rozwiązanie problemu sekcji krytycznej jest pozbawione impasu
95.
W jakich rodzajach procesów występuje problem synchronizacji procesów?
w procesach kooperacyjnych
96.
Ile wartości może przyjąć zmienna blokująca w rozwiązaniu TestAndSet?
2
97.
Jaki powinien być stosunek wywołań metod lock() do metod unlock() w obiekcie klasy Lock?
Liczba wywołań metody lock() powinna zawsze być równa liczbie wywołań metody unlock()
98.
Kiedy jesteśmy w stanie zobaczyć listę oczekujących wątków?
Jedynie wykorzystując Lock Framework
99.
Czy w przypadku kodu Lock.lock (); myMethod (); Lock.unlock (); gdy metoda myMethod() natrafi na wyjątek (Exception) będzie możliwe zwolnienie blokady (Lock.unlock())?
Nie, zwolnienie blokady będzie zawsze niemożliwe w takim przypadku
100.
Czy inny proces może użyć zablokowanej zmiennej, nienależącej do niego?
Nie, musi poczekać, aż zmienna zostanie zwolniona