Podsumowanie testu

Wilusz_PWiR

Podsumowanie testu

Wilusz_PWiR

Twój wynik

Rozwiąż ponownie
Moja historia
Pytanie 1
Jak działa metoda Thread.join()?
Wszystkie wątki zostaną rozpoczęte natychmiastowo po użyciu metody join()
Wszystkie wątki zostaną zakończone po pewnym okresie czasu wpisanym w argumencie metody join()
Aktualny wątek na rozpoczęcie pracy wątku na którym użyto metody join()
Aktualny wątek czeka na zakończenie wątku na którym metoda join została wywołana
Pytanie 2
Jaki cykl życia przyjmuje wątek po użyciu na nim metody Thread.sleep()?
TIMED_WAITING
NEW
RUNNABLE
WAITING
Pytanie 3
Jak działa metoda Thread.start()?
Powoduje wykonanie kodu w metodzie main()
Kończy działanie wątku
Tworzy nowy wątek
Powoduje wykonanie kodu w metodzie run()
Pytanie 4
Semafor binarny jest znany jako:
kontroler
adapter
mutex
bramka logiczna
Pytanie 5
Ile istnieje stanów filozofa w problemie ucztujących filozofów?
5
4
3
Jest to wartość ruchoma.
Pytanie 6
Z jakiego powodu pojawia się zakleszczenie w problemie ucztujących filozofów?
Z powodu zbyt małej ilości jedzenia
Z powodu błędu programistycznego dotyczącego importowania bibliotek
Z powodu braku komunikacji między filozofami
Z powodu skorzystania ze złych pałeczek
Pytanie 7
W dowolnym momencie czasowym z metod monitora może korzystać:
2 wątki na raz
żadne z powyższych
Dowolna ilość wątków na raz
1 wątek na raz
Pytanie 8
Muteksy to inaczej:
Inna nazwa na zakleszczenie (ang. Deadlock)
Wywłaszczenie zasobu
Mechanizm usprawniający dziedziczenie wielobazowe w Javie.
Algorytmy wzajemnego wykluczania
Pytanie 9
W jakim języku po raz pierwszy zostały zaimplementowane monitory?:
C#
Concurrent Pascal
Java
C++
Pytanie 10
Ile maksymalnie procesów może obsłużyć algorytm Petersona
Cztery
Jeden
Trzy
Dwa
Pytanie 11
Race condition występuje kiedy:
Kod jest maksymalnie zoptymalizowany.
Procesy rywalizują ze sobą, który pierwszy się wykona.
Dwa lub więcej procesów mają dostęp do udostępnionych zmiennych i chcą je zmienić w tym samym czasie.
Synchronizacja spełnia swoją funkcję.
Pytanie 12
Semafory binarne są znane jako:
Bramki logiczne
Kontrolery
Mutex lock
Adaptery
Pytanie 13
W której wersji Javy wprowadzono framework Lock?
Java 3
Java 2
Java 5
Istniał w Javie od zawsze
Pytanie 14
W jakim pakiecie Javy można znaleźć interfejs Lock?
java.util.concurrent
java.util.arrays
java.util.function
java.util.lock
Pytanie 15
Które z wymienionych rozwiązań jest najbardziej efektywne?
Oba mają taką samą efektywność
synchronized
lock
Nie da się ich porównać
Pytanie 16
Sekcja krytyczna jest pusta, kiedy:
lock = 15
lock = null
lock = 1
lock = 0
Pytanie 17
Pseudokod while(lock != 0); lock = 1; w mechanizmie synchronizacji “zmiennej blokującej” jest charakterystyczny dla:
końca sekcji krytycznej
sekcji wejściowej
sekcji krytycznej
sekcji wyjściowej
Pytanie 18
Na podstawie których podstawowych parametrów jest oceniany każdy mechanizm synchronizacji?
ograniczone wykluczenie, wzajemne oczekiwanie
brak wykluczenia, kompleksowość mechanizmu
wzajemne wykluczenie, postęp, ograniczone oczekiwanie
szybkość wykonania, brak regresu
Pytanie 19
Co to jest programowanie wielowątkowe?
Jest to proces, w którym dwie lub więcej części tego samego procesu działają jednocześnie.
Jest to proces, w którym pojedynczy proces może uzyskać dostęp do informacji z wielu źródeł.
Jest to proces, w którym jednocześnie działają dwa różne procesy.
Jest to proces, w którym wiele różnych procesów ma dostęp do tych samych informacji.
Pytanie 20
Czym jest synchronizacja w odniesieniu do wątku?
Jest to proces, dzięki któremu metoda ma dostęp do wielu różnych wątków jednocześnie.
Jest to proces, dzięki któremu wiele wątków może jednocześnie uzyskiwać dostęp do tego samego udostępnionego zasobu.
Jest to metoda, która pozwala wielu wątkom uzyskać dostęp do wszelkich wymaganych informacji.
Jest to proces radzenia sobie z sytuacjami, w których dwa lub więcej wątków potrzebuje dostępu do udostępnionego zasobu.
Pytanie 21
Synchronizacja wątków w procesie będzie wymagana, gdy:
Wszystkie wątki współużytkują tę samą przestrzeń adresową.
Wszystkie wątki współużytkują te same pliki.
Wszystkie odpowiedzi są poprawne.
Wszystkie wątki współużytkują te same zmienne globalne.
Pytanie 22
Co się stanie gdy producent spróbuje wczytać dane a bufor jest pełny?
Nastąpi zakończenie procesu i program zgłosi błąd
Odpowiedzi A i C są prawidłowe
Dane zostaną usunięte
Producent zostanie uśpiony
Pytanie 23
Czym jest semafor?
Klasą wykorzystywaną przy tworzeniu interfejsów graficznych
Sposobem inkrementacji licznika pobranych danych
Kontrolą dostępu do współdzielonych zasobów przy użyciu licznika
Weryfikacją dostępu dla użytkownika na podstawie loginu i hasła
Pytanie 24
Jakie operacje odnoszą się względem dostępu do semafora?
Run() oraz Stop()
Sleep(), Start() oraz Idle()
Low(), High(), Increment() oraz Decrement()
Wait() oraz Signal()
Pytanie 25
Gdy wątek otrzymuje dostęp do danych za pomocą semafora:
Semafor ustawia swój licznik na 1.
Semafor nie robi nic z licznikiem;
Semafor zmniejsza swój licznik;
Semafor zwiększa swój licznik;
Pytanie 26
Co się stanie gdy ten sam wątek wywoła funkcje acquire() dwa razy z rzędu na semaforze binarnym?
Wątek zachowa się tak samo jak przy pojedynczym wywołaniu.
Dojdzie do zakluczenia (deadlock), jeżeli inny wątek nie wywoła w między czasie metody release();
Licznik zmniejszy się o 2;
Licznik zwiększy się o 2;
Pytanie 27
Wywołując metodę release():
Wartość licznika nie zmienia się;
Licznik zmniejsza się o 1 i wątek ma dostęp do danych;
Licznik zwiększa się o 1, a wątek, który oczekiwał w kolejce może mieć dostęp do danych;
Licznik zwiększa się o 1 i wątek ma dostęp do danych
Pytanie 28
pytanie 10
Pytanie 29
pytanie 10
Pytanie 30
pytanie 10
Pytanie 31
Jak nazywa się metoda służąca do obudzenia wątku oczekującego na dostęp?
żadne z powyższych
inform
notify
wake
Pytanie 32
Jak nazywa się metoda, która powoduje że dany wątek rozpoczyna oczekiwanie na obudzenie przez inny wątek?
sleep
hibernate
wait
expect
Pytanie 33
Jak nazywa się słowo kluczowe, które zapewnia, że tylko jeden wątek jest aktywny w jednym czasie?
harmonized
parallel
sync
synchronized
Pytanie 34
Wywołując metodę release() na semaforze:
Licznik zwiększa się o 1, a wątek oczekujący zyskuje dostęp do zasobu;
Licznik ustawiany jest na 1;
Licznik zwiększa się o 1;
Licznik ustawiany jest na 0;
Pytanie 35
Jaka jest poprawna składnia inkrementacji zmiennej x typu AtomicInteger w Javie?
x.increment();
x = x+1;
x++
x.getAndIncrement();
Pytanie 36
Jak nazywa się metoda, która pauzuje wątek?
interrupt
wait
sleep
kill
Pytanie 37
Ile pisarzy może jednocześnie korzystać z zasobu stosując rozwiązanie monitorów?
żadne z powyższych
nieskończenie wiele
dokładnie jeden
zależy to od rodzaju zasobu
Pytanie 38
Co następuje po otrzymaniu dostępu do zasobu przez jednego z czytelników w rozwiązaniu monitorów?
równocześnie jeden pisarz otrzymuje dostęp do zasobu
czytelnik może korzystać tak długo z zasobu, aż w kolejce pojawi się pisarz
pozostali czytelnicy oczekują na opuszczenie zasobu przez obecnego czytelnika
pozostali czytelnicy również otrzymują dostęp
Pytanie 39
Wskaż korzyść wynikającą z użycia rozwiązania monitorów względem semaforów?
wszystkie z powyższych
rozwiązanie jest łatwiejsze do zrozumienia
mniejsza podatność na błędy
mniejsze skomplikowanie kodu
Pytanie 40
Gdy wątek nie potrzebuje już dostępu do współdzielonego zasobu, w celu zwolnienia pozwolenia wywoływana jest metoda:
żadne z powyższych
release()
availablePermits()
reducePermits(int reduction)
Pytanie 41
Wątek, który chce uzyskać dostęp do wspólnego zasobu, próbuje zdobyć pozwolenie. W tym celu wykorzystana zostanie metoda:
drainPermits()
join()
getPermit()
acquire()
Pytanie 42
W celu sprawdzenia dostępnej ilości zezwoleń, należy użyć metody:
isAvailable()
availablePermits()
tryAcquire()
semaphore(int permits, boolean isFair)
Pytanie 43
Semafor jest to _______ do rozwiązywania problemu sekcji krytycznej
hardware
żadne z powyższych
program
zmienna
Pytanie 44
Operacja oczekiwania semafora działa w zasadzie na podstawowe wywołanie systemowe _______.
Stop ()
Hold ()
Block ()
Wait ()
Pytanie 45
Semafor zliczający:
Jest zmienną całkowitą
Może służyć do wyeliminowania zajętego oczekiwania
Nie można go używać do kontrolowania dostępu do najważniejszych sekcji
Może być modyfikowany jednocześnie przez wiele wątków.
Pytanie 46
Które z poniższych stwierdzeń dotyczących synchronizacji jest prawdziwe?
Zapewnia poprawę wydajności.
Synchronizacja służy do koordynowania dostępu do obiektów współdzielonych przez wiele programów.
Innym słowem oznaczającym blokadę jest monitor.
Nie występuje w Javie.
Pytanie 47
Które z poniższych stwierdzeń jest prawdziwe?
Wątek użytkownika nie może zatrzymać żadnego z wątków.
Program kończy się, upłynie zadeklarowany czas.
Program kończy się, gdy wyłączymy komputer.
Program kończy się, gdy kończą się wszystkie wątki niebędące demonami.
Pytanie 48
Słowo kluczowe ,, synchronized”, można zastosować do:
Metody instancji klasy
Coś, czego nie ma w C++.
Nowy mechanizm Javy wprowadzony w jej ostatniej wersji.
Kolano głównej rury odprowadzającej ścieki do kolektora oczyszczającego
Pytanie 49
Pytanie 17
Pytanie 50
Pytanie 17
Pytanie 51
Pytanie 17
Pytanie 52
aka metoda służy do usypiania wątku?
join()
notify()
wait()
notifyAll()
Pytanie 53
Kiedy wątek uśpiony metodą wait() się uruchamia?
Natychmiast po wywołaniu metody notify() w innym wątku
Po wywołaniu metody notify() w innym wątku oraz jego zakończeniu
Po 10 sekundach od wywołania wait()
Po wywołaniu metody notify() w tym samym wątku
Pytanie 54
Ile wątków budzi metoda notifyAll()?
Wszystkie w całym programie
Wszystkie w ramach tego samego obiektu
Dokładnie 1
Maksymalnie 27
Pytanie 55
Dokładność czasu na który usypiany jest wątek w metodzie sleep()
Można ustanowić ją przy uruchamianiu metody
Zależy od precyzji timerów systemowych
Żadne z powyższych
Zawsze jest taka sama
Pytanie 56
Co dzieje się w metodzie yield() jeśli nie zostanie znaleziony wątek o wyższym priorytecie?
Losowo wybierany jest wątek, który będzie uruchamiany
Dotychczasowy wątek kontynuuje wykonywanie
Taka sytuacja nie jest możliwa
Wykonywany jest wątek główny
Pytanie 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
Nanosekundy
Żadne z powyższych
Sekundy
Pytanie 58
Czy wykonanie tego samego kodu źródłowego może dać różne rezultaty?
Nie
Tak
Tak, ale tylko na procesorach starszych niż 35 lat
żadne z powyższych
Pytanie 59
Do czego służy metoda isAlive()
do sprawdzenia czy dany proces ciągle się wykonuje
do zabicia trwającego procesu
jest to mechanizm usprawniający dziedziczenie wielobazowe w Javie.
do wskrzeszenia zakończonego procesu
Pytanie 60
Aby rozpocząć wykonywanie się nowego wątku należy użyć metody:
start()
isAlive()
beginFun()
żadne z powyższych
Pytanie 61
Co zwróci metoda Semafor.toString()
żadne z powyższych
identyfikator semafora
liczbę obecnych pozwoleń w postaci "Permits=4"
identyfikator oraz liczbę obecnych pozwoleń
Pytanie 62
Czy liczba pozwoleń jest stała?
nie, ale jest ustalana przez system
semafory nie przechowują pozwoleń
tak, jest ustalana przez system
nie i jest ustalana przez użytkownika
Pytanie 63
Jaki jest efekt metody acquire():
żadne z powyższych
zwiększenie liczby zezwoleń i zablokowanie dostępu do zasobu
zmniejszenie liczby zezwoleń i pozwolenie na dostęp wątku do zasobu
zwraca obecną liczbę pozwoleń
Pytanie 64
Jaką wartość musi mieć licznik „hold count” w ReentrantLock, aby współdzielone zasoby były wolne?
hold count = 3
hold count = 0
hold count = 2
hold count = 1
Pytanie 65
Jaki interfejs implementuje klasa ReentrantLock?
Interfejs Comparable
Interfejs Runnable
Interfejs Serializable
Interfejs Lock
Pytanie 66
W jakim bloku musi być umieszczona metoda unlock() w ReentrantLock, tak aby nie doszło do żadnych błędów:
W bloku „finally”
W bloku „catch”
Żadna z powyższych nie jest prawidłowa
W bloku „if”
Pytanie 67
Do czego służy mechanizm Executors?
Uruchamianie wątków wewnątrz puli.
Jest to interfejs.
Uruchamianie zadań synchronicznych.
Tworzenie puli wątków.
Pytanie 68
Ile wątków w jednym czasie przyjmuje pula wątków?
Nie jesteśmy w stanie tego określić.
Każdy rodzaj puli przyjmuje jeden wątek.
Więcej niż ilość zdefiniowana w trakcie tworzenia puli wątków.
Nie więcej niż ilość zdefiniowana w trakcie tworzenia puli wątków.
Pytanie 69
Jaka jest dobra praktyka pracując z pulami wątków?
Dodawanie wiele wątków wykonujących długie operacje.
Dodawanie wątków po wywołaniu shutdown() na puli wątów.
Dodawanie wątków do puli czekających na wynik zadań będących w kolejce.
Dobre rozumienie i właściwy dobór zadań do strojenia puli wątków.
Pytanie 70
Za co odpowiedzialna jest metoda notify()?
żadne z powyższych
Powiadomienie i wybudzenie jednego z oczekujących wątków
Powiadomienie i wybudzenie wszystkich oczekujących wątków
Dodanie aktualnego wątku do zbioru powiadamianych wątków
Pytanie 71
Jednym ze sposobów aby wątek znalazł się w stanie WAITING jest?
Object.notify()
Object.wait()
Thread.join()
Object.notifyAll()
Pytanie 72
Do jakiej klasy należy metoda notifyAll()?:
Thread
Field
Object
Żadne z powyższych
Pytanie 73
Którą z metod uruchomić oczekiwanie na zakończenie CountDownLatch?
whenfinish();
waittillend().
wait();
await();
Pytanie 74
Którą z metod zmniejszyć licznik po wykonaniu pracy przez każdy serwis?
down();
decrease();
countDown();
minus().
Pytanie 75
Którą z metod otrzymamy aktualny stan licznika?
count();
getCount();
amount();
howmuch().
Pytanie 76
Która z metod zmieni stan wątku thread 1 na Terminated?
Thread1.end
Thraed1.kill()
Thread1.join(thread2)
Thread2.join(thread1)
Pytanie 77
W jakim stanie znajduje się watke po wywołaniu metody .start()?
Started
New
Runnable
Waiting
Pytanie 78
Jak nazywa się metoda, która wprowadza wątek w stan oczekiwania czasowego?
wait
interrupt
sleep
kill
Pytanie 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()
kiedy wątek jest zablokowany metodą join(), wait() lub sleep()
nigdy – w przypadku tej metody wyrzucany jest wyjątek RuntimeException
InterruptedException występuje zawsze, kiedy użyjemy metody interrupt()
Pytanie 80
W jakiej klasie dostępna jest metoda interrupt()?
Thread
Object
nie ma takiej metody
Runtime
Pytanie 81
Która metoda należy do klasy Object?
start()
sleep()
wait()
join()
Pytanie 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.
Sekcja wejściowa
Niekrytyczna sekcja
Krytyczna sekcja
Sekcja wyjściowa
Pytanie 83
Rozwiązanie problemu krytycznej sekcji musi spełniać trzy z podanych wymagań: I. Wzajemne wykluczanie II. Progres III. Nieograniczone oczekiwanie IV. Ograniczone oczekiwanie
A. I, II, III
B. II, III, IV
D. I, II, IV
C. I, III, IV
Pytanie 84
Które sformułowanie opisuje ograniczone oczekiwanie?
Jeśli żaden wątek nie wykonuje swojej krytycznej sekcji, a są wątki, które chcą wejść do swojej krytycznej sekcji, to jeden z nich z nich na pewno wejdzie do krytycznej sekcji.
Wiele procesów ma dostęp oraz możliwość zmiany danych jednocześnie.
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.
Kiedy wątek wykonuje swoją krytyczną sekcji, żaden inny wątek nie może wykonywać swojej krytycznej sesji.
Pytanie 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 początek kolejki i pobierane z początku kolejki
Dane są dodawane na początek kolejki, a pobierane z końca kolejki
Dane są dodawane na koniec kolejki i pobierane z końca kolejki
Dane są dodawane na koniec kolejki, a pobierane z początku kolejki
Pytanie 86
Ile maksymalnie procesów może być wykonywanych współbieżnie, aby możliwe było zapewnienie synchronizacji przy pomocy algorytmu Petersona?
4
nieskończenie wiele
2
3
Pytanie 87
Które sformułowanie opisuje pojęcie wzajemnego wykluczania?
Żadne z powyższych.
Jeśli jeden proces wykonuje kod w swojej sekcji krytycznej, to w tym czasie inne procesy nie mogą wykonywać kodu w swoich sekcjach krytycznych.
Żaden proces nie może uzyskać dostępu ani modyfikować tych samych danych jednocześnie.
Kilka procesów może jednocześnie uzyskać dostęp do tych samych danych oraz je modyfikować.
Pytanie 88
Która z metod klasy Thread nadaje priorytet wątkowi?
setDaemon()
setPriority()
setName()
getPriority()
Pytanie 89
“Wszystkie wątki są zablokowane, program nigdy się nie wykona.” - do której sytuacji odnosi się to zdanie?
zagłodzenie
wszystkie są poprawne
wielowątkowość
zakleszczenie
Pytanie 90
Która z metod klasy Thread jawnie wywołuje rozpoczęcie wątku?
run()
interrupt()
join()
start()
Pytanie 91
Co to jest Semafor?
Procedura
Chroniona zmienna
Żadne z powyższych
Kolejka procesów
Pytanie 92
Co to jest zakleszczenie?
Mechanizm pozwalający na zmniejszenie zużycia pamięci RAM
Sytuacja, w której co najmniej dwie różne akcje czekają na siebie nawzajem
Zapętlenie programu
Błąd zwracany przez program
Pytanie 93
Czym jest Mutex:
Jest strukturą danych
Jest fragmentem kodu, w którym wątki (lub procesy) odwołują się do wspólnego zasobu.
Jest blokadą, którą może uzyskać tylko jeden wątek
Jest to inny termin na określenie zakleszczenia
Pytanie 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
Procesy wchodzą do sekcji krytycznej w kolejności FIFO
Procesy wchodzą do sekcji krytycznej w kolejności losowej
Więcej niż jeden proces może wejść do sekcji krytycznej jednocześnie
Pytanie 95
W jakich rodzajach procesów występuje problem synchronizacji procesów?
w procesach systemowych
w procesach kooperacyjnych
w procesach niezależnych
we wszystkich powyższych
Pytanie 96
Ile wartości może przyjąć zmienna blokująca w rozwiązaniu TestAndSet?
2
3
4
1
Pytanie 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()
Wywołań metody unlock() powinno być więcej od lock()
żadne z powyższych
Wywołań metody lock() powinno być więcej od unlock()
Pytanie 98
Kiedy jesteśmy w stanie zobaczyć listę oczekujących wątków?
Wykorzystując Lock Framework lub standardową synchronizację
Nigdy nie jest to możliwe
Jedynie wykorzystując Lock Framework
Jedynie wykorzystując standardową synchronizację
Pytanie 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
Taki kod nie będzie chciał się skompilować
To zależy od ciała metody myMethod()
Tak, zawsze nastąpi zwolnienie blokady
Pytanie 100
Czy inny proces może użyć zablokowanej zmiennej, nienależącej do niego?
Tylko jeżeli proces aktualnie wykorzystujący zmienną na to pozwoli
Nie, zmienna została zablokowana na zawsze
Tak, w każdym dowolnym momencie
Nie, musi poczekać, aż zmienna zostanie zwolniona
Pytanie 101
Ile najwięcej procesów może obsłużyć mechanizm blokowania zmiennych?
Więcej niż 2
Max 2
Żadna odpowiedź nie jest prawdziwa
Tylko 1
Pytanie 102
Na podstawie jakich parametrów oceniany jest mechanizm synchronizacji?
Ograniczone oczekiwanie
Postęp
Wzajemne wykluczanie
Wszystkie powyższe
Pytanie 103
Czym jest semafor?
sytuacja, w której wątek nie może otrzymać dostępu do danych
zatrzymanie wykonania wątku
metoda, dzięki której uruchamiamy wątek
metoda kontroli dostępu przez wiele procesów do wspólnego zasobu
Pytanie 104
Czym jest deadlock?
metoda, która wstrzymuje wątek, dopóki inny wątek się nie wykona
wątek działający w tle
uśpiony wątek
sytuacja, w której wątki wzajemnie blokują zasoby potrzebne do działania
Pytanie 105
Jak działa metoda acquire()?
powiadamia i wybudza jeden oczekujący wątek
powiadamia i wybudza wszystkie oczekujące wątki
blokuje dostęp do zasobów, dopóki nie zostanie uzyskana zgoda
usypia wątek na podaną długość czasu w milisekundach
Pytanie 106
Którą metodę musi zdefiniować klasa implementująca interfejs java.lang.Runnable?
żadną z powyższych
public void run();
public void start();
void run();
Pytanie 107
Jak nazywa się metoda używana do uruchamiania wykonywania wątku?
resume();
run();
start();
init();
Pytanie 108
Która z poniższych metod nie może bezpośrednio spowodować, że wątek przestanie działać?
Wywołanie metody SetPriority() na obiekcie Thread.
Wywołanie metody sleep() na obiekcie Thread.
Wywołanie metody notify() na obiekcie.
Wywołanie metody wait() na obiekcie.
Pytanie 109
Czego abstrakcją jest pisarz?
Procesu edytującego zasób
Nie jest abstrakcją
Programisty
Procesu odczytującego zasób
Pytanie 110
W wariancie faworyzującym czytelników zagłodzenie może dotyczyć:
Jedynie czytelnika
Zasobu
Pisarza oraz czytelnika
Jedynie pisarza
Pytanie 111
W wariancie faworyzującym czytelników dostęp wyłączny może uzyskać:
Jedynie pisarz
Zasób
Jedynie czytelnik
Pisarz lub czytelnik
Pytanie 112
Która paczka zawiera klasę semafora?
java.util.concurrent
java.util.semaphore
java.lang.math
żadna z powyższych
Pytanie 113
Jaką funkcję należy wywołać, aby wątek miał dostęp do zasobów?
żadne z powyższych
acquire()
release()
sem()
Pytanie 114
Co określa parametr num w konstruktorze?
stan licznika
obecną iterację
żadne z powyższych
liczbę początkowych zezwoleń na dostęp do zasobów
Pytanie 115
Jakie wartości może przyjmować Semafor binarny?
0 i 1
Od 0 do 10
Wszystkie całkowite
żadne z powyższych
Pytanie 116
Jakie wartości może przyjmować Semafor zliczeniowy?
Całkowite ujemne
0 i 1
Całkowite dodatnie
Całkowite nieujemne
Pytanie 117
Semafor podczas inicjowania przyjmuje wartość:
2
-1
0
1
Pytanie 118
Synchronizacja w Javie jest możliwa dzięki:
słowie kluczowemu synchronized
metodzie Thread.s
wszystkie powyższe odpowiedzi są poprawne
bibliotece jawa.sync
Pytanie 119
Gdzie nie można użyć bloku synchronized?
odpowiedzi a i b są poprawne
w metodzie
w funkcji
żadne z powyższych
Pytanie 120
Kiedy wątek jest wykonywany w bloku synchronized, a inny próbuje uzyskać dostęp do zawartego w nim zasobu to wątek próbujący uzyskać dostęp:
zostaje zawieszony
jest wykonywany jednocześnie z pierwszym wątkiem
pomaga wykonywać instrukcje pierwszemu wątkowi
żadne z powyższych
Pytanie 121
Jak można poradzić sobie z problemem poślizgu?
żadne z powyższych
Blokując dane współdzielone za pomocą zmiennej statycznej
Jest to niemożliwe
Zmieniając pętlę while na do while
Pytanie 122
Kiedy może wystąpić problem poślizgu?
W sytuacji, gdy wątek zostaje zawieszony po sprawdzeniu warunku a przed wykonaniem czynności z nim związanych
Kiedy dwa wątki próbują skorzystać z zablokowanego zasobu
Kiedy dwa wątki jednocześnie próbują zapisać coś w tym samym miejscu w pamięci
Tylko w sytuacji gdy jeden z wątków jest wstrzymywany funkcją wait()
Pytanie 123
Kiedy dane zostają zwolnione przez wątek działających na nich?
Kiedy wątek blokujący ukończy wszelkie działania na danych
Kiedy drugi wątek poprosi o ich zwolnienie
Niezwłocznie po ich zablokowaniu
Nigdy
Pytanie 124
Kiedy wiedza o poślizgu jest przydatna podczas pracy nad aplikacją wielowątkową?
Podczas optymalizacji kodu
Na poziomie projektowania architektury aplikacji
Kiedy otrzymany wynik nie jest zgodny z naszym oczekiwaniem
Wiedza ta nie przydaje się
Pytanie 125
Czym jest StringIndexOutOfBoundsException?
Metodą
Interfejsem
Wyjątkiem
Komentarzem
Pytanie 126
Jaką metodą klasy Thread można uruchomić wykonywanie wątku?
run()
runThread()
start()
startThread()
Pytanie 127
Co zwraca metoda notify() klasy Object?
boolean
nie zwraca żadnej wartości
int
String
Pytanie 128
Jakie są wymagania interfejsu Runnable:
run()
println()
main()
toString()
Pytanie 129
Jaki typ zwraca join() z klasy Thread?
nie zwraca nic, void
List
Thread
String
Pytanie 130
Jaki typ zwraca isAlive() z klasy Thread?
boolean
Integer
Thread
String
Pytanie 131
Jaki typ Exception rzuci metoda join() z klasy Thread jeżeli zostanie przerwany wątek na którym została wykonana:
ExecutionException
InterruptedException
NullPointerException
Nie rzuci wyjątku
Pytanie 132
Czym są semafory?
Mechanizm javy wprowadzony w ostatniej wersji
Sposobem wywołania metody
To liczniki umożliwiające dostęp do sekcji krytycznej aplikacji jednemu lub wielu wątkom.
Rodzaj klasy w javie
Pytanie 133
Po co się tworzy wątki?
W celu zapobiegnięciu zakleszczeń
Żeby odciążyć pracę procesora
Tworzenie wątków umożliwia podział aplikacji na niezależne podprogramy, wykonujące współbieżnie określone zadania.
Przyspiesza działanie programu
Pytanie 134
W jakim celu stosujemy semafory?
Żeby łatwiej odczytywać kod programu
Żeby ograniczyć błędy
Aby uzyskać dostęp do sekcji krytycznej
W celu synchronizacji wątków i zapobiegania szkodliwej rywalizacji.
Pytanie 135
Jaki problem jest rozwiązany przy stosowaniu tego rozwiązania?
Zakleszczenie
Opóźnienie
Spowolnienie
Zablokowanie
Pytanie 136
Jakim słowem oznaczona jest sekcja krytyczna?
Synchronized
Critical
Final
Session
Pytanie 137
Głównym zadaniem monitora jest:
Monitorowanie zmiennych
Utworzenie graficznego interfejsu programu
Wykonywanie instrukcji
Kontrolowanie dostępu do sekcji kodu
Pytanie 138
Do czego może doprowadzić wystąpienie błędnego stanu?
Do nieskończonego zapętlenia wykonania działania programu
Do zgłoszenia wyjątku i przerwania wykonania
Żadne z powyższych
Do zabicia wątku
Pytanie 139
Jak można w łatwy sposób doprowadzić do wystąpienia błędu stanu?
Usypiając wątek po sprawdzeniu warunku przed przetwarzaniem niezablokowanego zasobu
Uruchamiając wiele wątków przetwarzających ten sam zasób
Blokując zasób przed przetwarzaniem
Zgłaszając wyjątek w trakcie wykonania kodu jednego z wątków
Pytanie 140
Aby zablokować zasób dla jednego wątku możemy:
Dodać słowo locked definiując zasób
Sprawić aby wątek dziedziczył z klasy ReentrantLock
Wykonać metodę lock() na wątku
Dodać zmienną informującą o tym że zasób jest zablokowany przyjmująca wartości true lub false i odpowiednio ją obsługiwać przy wykorzystaniu zasobu.