Algorithms and other things developed for Concurrent Programming class.
- Understand and implement concepts of parallelism, synchronization between threads, and protection of critical regions.
- Optimize program performance through concurrent programming.
- Develop distributed applications using languages such as
GoLang
. - Simulate real-world scenarios, such as e-commerce systems and file processing.
The repository is organized by labs, each of which addresses a concept of concurrent programming:
- Lab 1: Introduction to parallelism with file processing in
Python
andJava
. - Lab 2: Thread synchronization and concurrency control.
- Lab 3: Calculation of similarity between files using concurrent programming.
- Lab 4: Concurrent implementation in
GoLang
for efficient processing. - Lab 5: Building a Bittorrent-inspired distributed system using
GoLang
. - Lab 6: Producer-Consumer distributed system using
Java
. - Lab 7: Order processing in a concurrent e-commerce system.
Each lab contains scripts (build.sh
and run.sh
) to facilitate execution. See the individual directories for details on how to run the programs in different languages.