Concurrent programming coursework (C#)
- Type
- Project
Built and reported on a concurrent C# program covering the core problems concurrency courses exist to teach: threads running genuinely in parallel, semaphores and monitor/lock patterns controlling access to shared state, producer-consumer coordination between threads producing and consuming from a shared queue, and deadlock, both causing it deliberately to understand the conditions that create it and then designing it back out.
The written report mattered as much as the code: explaining why a given locking strategy avoided a specific deadlock condition, not just that the program ran without one in testing. Concurrency bugs are notoriously bad at showing up reliably, so the analysis had to reason about the possible interleavings, not just trust one clean run.
A harder module than most of the degree's other C# work, and one of the few that stayed purely language/runtime focused rather than building toward a user-facing system.