● Real-Time Audio Streaming Player
○ Developed a real-time application to stream and play audio wav files using C++ and WaveOut.
○ Used 25 C++ threads and the double buffering technique to play raw audio data from wav files.
○ Played small audio buffers one by one on 20 threads, while also loading the rest from the file.
○ Created a Monitor thread to automatically terminate and clean up other threads at the end of the program.
○ Communicated between threads via C++ mutexes, locks, condition variables, futures and promises.
● Multi-Threaded Maze Solver
○ Optimized a DFS-based maze solver by splitting it into 2 threads (Top-Down & Bottom-Up).
○ The 2 threads start from the opposite ends of the maze, meeting in the middle for a full solution.
○ Used C++ atomics for fast and efficient communication between threads.
○ Achieved ~2x increase in performance compared to the single-threaded solution.