Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Semafoor | High-Level Synchronisatiemechanismen
Quizzes & Challenges
Quizzes
Challenges
/
Multithreading in Java

bookUitdaging: Semafoor

Taak

Stel je hebt een resource die door slechts twee threads tegelijk benaderd mag worden. Je opdracht is om een programma te maken dat een semaphore gebruikt om de toegang tot deze resource te regelen.

Voorwaarden:

  1. Je hebt een Resource klasse met een use() methode die het gebruik van een resource simuleert, bijvoorbeeld door een bericht te printen en een vertraging toe te voegen;
  2. Je hebt een Worker klasse die Runnable implementeert; in de run() methode probeert deze toegang te krijgen tot de resource met behulp van een semaphore;
  3. In de SemaphoreExample klasse heb je een main() methode die een semaphore initialiseert met permissies voor twee threads, samen met meerdere worker threads die proberen toegang te krijgen tot de resource;
  4. Zorg ervoor dat nooit meer dan twee threads de resource tegelijkertijd kunnen gebruiken.
Note
Opmerking

Wijzig niets! Je hoeft alleen de run()-methode in de Worker-klasse te implementeren en de logica in de use()-methode in de Resource-klasse uit te werken.

Hoe moet het programma werken?

Er zijn 5 threads die gelijktijdig de use() methode willen uitvoeren, maar met een Semaphore moet de gelijktijdige uitvoering worden beperkt tot 2 threads. Zodra een thread de Semaphore vrijgeeft, kan een andere thread beginnen met het uitvoeren van deze methode. Voor meer duidelijkheid in dit scenario wordt aanbevolen om een vertraging toe te voegen binnen de use() methode.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain how a semaphore works in this context?

What would the output look like when running this program?

Can you show how to implement the Resource and Worker classes?

Awesome!

Completion rate improved to 3.33

bookUitdaging: Semafoor

Veeg om het menu te tonen

Taak

Stel je hebt een resource die door slechts twee threads tegelijk benaderd mag worden. Je opdracht is om een programma te maken dat een semaphore gebruikt om de toegang tot deze resource te regelen.

Voorwaarden:

  1. Je hebt een Resource klasse met een use() methode die het gebruik van een resource simuleert, bijvoorbeeld door een bericht te printen en een vertraging toe te voegen;
  2. Je hebt een Worker klasse die Runnable implementeert; in de run() methode probeert deze toegang te krijgen tot de resource met behulp van een semaphore;
  3. In de SemaphoreExample klasse heb je een main() methode die een semaphore initialiseert met permissies voor twee threads, samen met meerdere worker threads die proberen toegang te krijgen tot de resource;
  4. Zorg ervoor dat nooit meer dan twee threads de resource tegelijkertijd kunnen gebruiken.
Note
Opmerking

Wijzig niets! Je hoeft alleen de run()-methode in de Worker-klasse te implementeren en de logica in de use()-methode in de Resource-klasse uit te werken.

Hoe moet het programma werken?

Er zijn 5 threads die gelijktijdig de use() methode willen uitvoeren, maar met een Semaphore moet de gelijktijdige uitvoering worden beperkt tot 2 threads. Zodra een thread de Semaphore vrijgeeft, kan een andere thread beginnen met het uitvoeren van deze methode. Voor meer duidelijkheid in dit scenario wordt aanbevolen om een vertraging toe te voegen binnen de use() methode.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4
some-alt