Over a million developers have joined DZone.

Updated Course: Developing Windows Concurrent Applications


During the last couple of months, I have been updating the materials of the Developing Windows Concurrent Applications course. It is now an up-to-date four day ILT with lots of labs, demos, design patterns, and other practical materials to help C++ developers write their next great concurrent application for Windows.

The target audience is C++ programmers with 1-2 years of experience writing Windows applications, but who haven’t necessarily seen how to create threads, queue work to the thread pool, synchronize access to shared resources, minimize shared operations, throttle the amount of work, and many other things that are critical for an application running on a multicore system.

The theory and practice of “raw” Windows concurrent programming are also peppered with two leading concurrency frameworks—the steady but declining OpenMP, and the new and emerging ConcRT, along with a brief intro to C++11, the (very recently approved) C++ standard of the new millennium.

The course wouldn’t be at all useful for you if it weren’t for the labs, and here are just a few examples:

  • Designing and implementing a lock-free collection
  • Implementing synchronization mechanisms such as barrier, reader-writer lock, condition variable
  • Designing a custom thread pool based on APC or IOCP
  • Parallelizing sort, matrix sum, fold-and-scan and many other operations using OpenMP and ConcRT

I have recently delivered the updated version of the course for the first time, and it’s been a great deal of fun. I hope you will like it too.


Published at DZone with permission of Sasha Goldshtein, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}