This is a Concurrency Problem Solving , which tries Traffic Light simulation.
The Vehicles are moving along streets and are crossing intersections. However, with increasing traffic in the city, traffic lights are needed for road safety. Each intersection will therefore be equipped with a traffic light. This project emphasises a suitable and thread-safe communication protocol between vehicles and intersections to complete the simulation. This problem builds a concurrent programming approach (such as mutexes, locks and message queues) to implement the traffic lights and integrate them properly in the code base.
- cmake >= 2.8
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- OpenCV >= 4.1
- The OpenCV 4.1.0 source code can be found here
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
- Clone this repo.
- Make a build directory in the top level directory:
mkdir build && cd build - Compile:
cmake .. && make - Run it:
./traffic_simulation.
The traffic simulation would run with red lights controlling traffic, just as in the .gif file above.
