Git Product home page Git Product logo

restaurantsimulation's Introduction

Vaibhav Devekar
[email protected]
===============================================================
Restaurant Simulation using multi-threading and synchronization
===============================================================


How to run program
------------------
To run the program, navigate to the directory containing the java files and execute the following shell commands:

>javac Main.java
>java Main <FILEPATH>

where <FILEPATH> is a command-line argument specifying the filepath for input file. 
The output file will be produced in the same directory as the input file.


The data int the output file is formatted as:
Arrival time : TableNo CookId   SeatedTime   BurgerTime FriesTime CokeTime   ServedTime LeftTime

where BurgerTime,FriesTime and CokeTime specify the time when cook started using the machines.


Description
-----------
The Main thread simulates time via Clock object as well as activates Diner threads at their arrival time.

The Diner threads contend to acquire tables while the Cook threads contend to acquire tables to serve as well as the machines.
If the corresponding resources are not available, they wait on NoWork object.

The notion of time in the simulation is enforced as follows.
The active Diner threads as well as Cook threads are required to log their presence with the Clock object.
Only when all the active threads have signed their presence, does the Main thread increment the clock.
The Clock object maintains an array for diners as well as for cooks to log their presence.


Files
-----
1) Main.java
2) Restaurant.java
3) Diner.java
4) DinerInfo.java
5) Cook.java
6) Table.java
7) Burger.java
8) Fries.java
9) Coke.java
10)NoWork.java
11)Clock.java

restaurantsimulation's People

Contributors

devekar avatar

Watchers

James Cloos avatar  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.