Continuations using C++11

PPL Task While playing with the concurrency features in C++11, I noticed that there wasn’t any support for continuations.  As a learning exercise I decided to develop something similar to tasks in The Parallel Patterns Library (PPL), where a task  can run asynchronously and execute a continuation upon completion using the then  member … Continue reading

Producer-Consumer Pattern Implementations: AAL v STL

Producers and Consumers

I have come across a few good examples of the Producer-Consumer pattern, however they tend to use contrived examples that don’t correlate well to a real world example.  I realise that the examples are generally contrived for the sake of brevity and in order to keep them clear and concise.  I admit that the … Continue reading

Multithreading in C# .Net – part three

concurrency testing framework

In the part one and part two I have described various threading and synchronisation methods that could be used to solve the scenario in the program.  In this post I will detail how I validated the code through xUnit and CHESS.  I will also describe other threading methods that weren’t suitable … Continue reading

Multithreading in C# .Net – part two

Sync

In part one I described four different threading methods used in my multithreaded application.  The application consists of three threads that execute at different frequencies, processing different logic on each thread.  The methods that I covered included Thread, ThreadPool, Task and BackgroundWorker.  In this post I will detail the various … Continue reading

Multithreading in C# .Net – part one

.Net Parallelism

There are a variety of ways to add parallelism to your .Net application.  I won’t go into detail about the benefits of doing so, suffice to say that if your application is executing multiple tasks that can run in parallel, it can benefit from being multithreaded. In order to implement … Continue reading