Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Semáforo | Mecanismos de Sincronización de Alto Nivel
Multithreading en Java

bookDesafío: Semáforo

Tarea

Imagina que tienes un recurso al que solo pueden acceder dos hilos al mismo tiempo. Tu tarea es crear un programa que utilice un semaphore para controlar el acceso a este recurso.

Condiciones:

  1. Tienes una clase Resource con un método use() que simula el uso de un recurso, como imprimir un mensaje e introducir un retraso;
  2. Tienes una clase Worker que implementa Runnable; en su método run(), intentará acceder al recurso usando un semaphore;
  3. En la clase SemaphoreExample, tienes un método main() que inicializa un semaphore con permisos para dos hilos, junto con varios hilos worker que intentarán acceder al recurso;
  4. Asegúrate de que no más de dos hilos puedan usar el recurso en cualquier momento.
Note
Nota

Por favor, no cambies nada. Solo necesitas implementar el método run() en la clase Worker y también implementar la lógica en el método use() de la clase Resource.

¿Cómo debe funcionar el programa?

Se tienen 5 hilos que desean ejecutar el método use() simultáneamente, pero con un Semaphore, es necesario limitar la ejecución simultánea a 2 hilos. Tan pronto como un hilo libera el Semaphore, otro hilo puede comenzar a ejecutar este método. Para mayor claridad en este escenario, se recomienda introducir una demora dentro del método use().

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 3.33

bookDesafío: Semáforo

Desliza para mostrar el menú

Tarea

Imagina que tienes un recurso al que solo pueden acceder dos hilos al mismo tiempo. Tu tarea es crear un programa que utilice un semaphore para controlar el acceso a este recurso.

Condiciones:

  1. Tienes una clase Resource con un método use() que simula el uso de un recurso, como imprimir un mensaje e introducir un retraso;
  2. Tienes una clase Worker que implementa Runnable; en su método run(), intentará acceder al recurso usando un semaphore;
  3. En la clase SemaphoreExample, tienes un método main() que inicializa un semaphore con permisos para dos hilos, junto con varios hilos worker que intentarán acceder al recurso;
  4. Asegúrate de que no más de dos hilos puedan usar el recurso en cualquier momento.
Note
Nota

Por favor, no cambies nada. Solo necesitas implementar el método run() en la clase Worker y también implementar la lógica en el método use() de la clase Resource.

¿Cómo debe funcionar el programa?

Se tienen 5 hilos que desean ejecutar el método use() simultáneamente, pero con un Semaphore, es necesario limitar la ejecución simultánea a 2 hilos. Tan pronto como un hilo libera el Semaphore, otro hilo puede comenzar a ejecutar este método. Para mayor claridad en este escenario, se recomienda introducir una demora dentro del método use().

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 4
some-alt