Giter Site home page Giter Site logo

fabrica-bicicletas's Introduction

Fabrica-Bicicletas

Simular la fabricación de bicicletas con programación concurrente.

Resumen ejercicio:

Implementar un programa multhilo en Java que simule el funcionamiento de una fábrica de bicicletas familiar donde:

  • Una persona fabrica ruedas. Simulamos (con sleep) que se tardan 2 segundos en fabricar una rueda. Cada vez que se fabrique una nueva rueda debe indicarse por pantalla.

  • Una persona fabrica cuadros. Simulamos (con sleep) que se tardan 3 segundos en fabricar un cuadro. Cada vez que se fabrique un nuevo cuadro debe indicarse por pantalla.

  • Dos personas montan bicicletas, para lo cual necesitan un cuadro y dos ruedas. Simulamos (con sleep) que se tardan 2 segundos en montar una bicicleta. Cada vez que se monnte una nueva bici debe indicarse por pantalla.

  • Las ruedas se colocan en un repositorio de ruedas donde sólo caben 5 ruedas. Una vez lleno el almacén de ruedas, el fabricante de ruedas tiene que esperar a que quede un hueco para que pueda almacenar la que acaba de fabricar y poder seguir fabricando más.

  • Los cuadros se colocan en un repositorio de cuadros donde sólo caben 3 cuadros. Una vez lleno, también tendrá que esperar.

  • El programa debe poder configurarse con la cantidad de ruedas y de cuadros que se van a construir y cuando se inicie deben lanzarse cuatro hilos simultáneos:

    • Uno para el fabricante de ruedas, que finalizará cuando se hayan construido las ruedas que se han indicado al ejecutar el programa.
    • Uno para el fabricante de cuadros, que finalizara cuando se hayan construido los cuadros indicados.
    • Dos para los montadores de bicis, que finalizarán cuando lleven un tiempo “prudencial” (por ejemplo 6 segundos) sin poder tomar elementos de los almacenes para poder montar una nueva bici.

Cuando los cuatro trabajadores finalicen su tarea, el programa principal debería indicar cuántas bicis se han montado durante la sesión.

SDK

Java 11

fabrica-bicicletas's People

Contributors

davibern avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.