Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Challenge Semaphore | High-level Synchronization Mechanisms
Multithreading in Java

bookChallenge Semaphore

Task

Imagine you have a resource that can be accessed by only two threads at a time. Your task is to create a program that uses a semaphore to control access to this resource.

Conditions:

  1. You have a Resource class with a use() method that simulates the use of a resource, such as printing a message and introducing a delay;
  2. You have a Worker class that implements Runnable; in its run() method, it will attempt to access the resource using a semaphore;
  3. In the SemaphoreExample class, you have a main() method that initializes a semaphore with permits for two threads, along with multiple worker threads that will attempt to access the resource;
  4. Ensure that no more than two threads can use the resource at any given time.

How should the program work?

You have 5 threads that want to execute the use() method simultaneously, but with a Semaphore, you need to limit the simultaneous execution to 2 threads. As soon as a thread releases the Semaphore, another thread can begin executing this method. For better clarity in this scenario, it’s recommended to introduce a delay within the use() method.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Kysy minulta kysymyksiä tästä aiheesta

Tiivistä tämä luku

Näytä käytännön esimerkkejä

Awesome!

Completion rate improved to 3.33

bookChallenge Semaphore

Pyyhkäise näyttääksesi valikon

Task

Imagine you have a resource that can be accessed by only two threads at a time. Your task is to create a program that uses a semaphore to control access to this resource.

Conditions:

  1. You have a Resource class with a use() method that simulates the use of a resource, such as printing a message and introducing a delay;
  2. You have a Worker class that implements Runnable; in its run() method, it will attempt to access the resource using a semaphore;
  3. In the SemaphoreExample class, you have a main() method that initializes a semaphore with permits for two threads, along with multiple worker threads that will attempt to access the resource;
  4. Ensure that no more than two threads can use the resource at any given time.

How should the program work?

You have 5 threads that want to execute the use() method simultaneously, but with a Semaphore, you need to limit the simultaneous execution to 2 threads. As soon as a thread releases the Semaphore, another thread can begin executing this method. For better clarity in this scenario, it’s recommended to introduce a delay within the use() method.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
some-alt