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:
- Introduction to parallelism with file processing in
PythonandJava. - Thread synchronization and concurrency control.
- Calculation of similarity between files using concurrent programming.
- Concurrent implementation in
GoLangfor efficient processing. - Building a Bittorrent-inspired distributed system using
GoLang. - Producer-Consumer distributed system using
Java. - 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.