C++ Multithreading Cookbook

Book and eBook expected July 2014. Pre-order now!
C++ Multithreading Cookbook
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 20%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create multithreaded applications using the power of C++
  • Upgrade your applications with parallel execution in easy-to-understand steps
  • Stay up to date with new Windows 8 concurrent tasks
  • Avoid classical synchronization problems
  • Understand Windows API and concurrent execution

Book Details

Language : English
Paperback : 300 pages [ 235mm x 191mm ]
Release Date : July 2014
ISBN : 1783289791
ISBN 13 : 9781783289790
Author(s) : Milos Ljumovic
Topics and Technologies : All Books, Application Development, Cookbooks, Open Source

Table of Contents

Chapter 1: Introduction to C++ Concepts and Features
Chapter 2: The Concepts of Process and Thread
Chapter 3: Managing Threads
Chapter 4: Message Passing
Chapter 5: Thread Synchronization and Concurrent Operations
Chapter 6: Threads in the .NET Framework
Chapter 7: Understanding Concurrent Code Design
Chapter 8: Advanced Thread Management
  • Chapter 1: Introduction to C++ Concepts and Features
    • Introduction
    • Creating a C++ project
    • Program structure, execution flow, and runtime objects
    • The structural programming approach
    • Understanding the object-oriented programming approach
    • Explaining inheritance, overloading, and overriding
    • Understanding polymorphism
    • Event handlers and Message Passing Interface
    • Linked list, queue, and stack examples
    • Chapter 2: The Concepts of Process and Thread
      • Introduction
      • Processes and threads
      • Explaining the process model
      • Implementation of processes
      • IPC – Interprocess Communication
      • Solving classical IPC problems
      • Implementation of the thread model
      • Thread usage
      • Implementing threads in user space
      • Implementing threads in the kernel
      • Chapter 3: Managing Threads
        • Introduction
        • Processes versus threads
        • Permissive versus preemptive multitasking
        • Explaining the Windows Thread object
        • Basic thread management
        • Implementing threads without synchronization
        • Using synchronized threads
        • Win32 synchronization objects and techniques
        • Chapter 4: Message Passing
          • Introduction
          • Explaining the Message Passing Interface
          • Understanding a message queue
          • Using the thread message queue
          • Communicating through the pipe object
            • Chapter 6: Threads in the .NET Framework
              • Introduction
              • Managed versus unmanaged code
              • How threading works in .NET
              • The difference between foreground and background threads
              • Understanding the .NET synchronization essentials
              • Locking and avoiding deadlocks
              • Thread safety and types of the .NET framework
              • Signaling with event wait handles
              • Event-based Asynchronous Pattern
              • Using the BackgroundWorker class
              • Interrupting, aborting, and safe canceling the thread execution
              • Non-blocking synchronization
              • Signaling with Wait and Pulse
              • The Barrier class
                  • Appendix
                    • Installing MySQL Connector/C
                    • Installing WinDDK – Driver Development Kit
                    • Setting up a Visual Studio project for driver compilation
                    • Using the DebugView application
                    • Setting up a Visual Studio project for OpenMP compilation

                    Milos Ljumovic

                    Miloš Ljumović was born on July 26 in Podgorica, the capital of Montenegro in Europe, where he attended elementary and high school. He also went to music school to play the guitar. He studied Computer Science in the Faculty of Natural Science and Mathematics, Montenegro University. The following year, he picked up interest in operating systems, which he majored in, in his Master's degree. In December 2009, along with his friend Danijel, he started his company, Programmer, along with a highly qualified team to provide high-tech IT solutions. Soon, many skilled developers joined them, and from this collaboration, many applications and system software, web applications, and database systems have arisen. His clients were not only the Government of Montenegro, but also some major domestic companies. He developed a new age financial system for the national domain company, MeNet; he also developed video recognition software, along with pictures and other digital media types. He also developed many fascinating websites and other web applications. The list of customers is too long to be incorporated here. After working only for a few months as an international consultant, he worked with an American company in a project involving large e-commerce businesses and data scraping from the Internet. All this was the spark to open his new company, EXPERT.ITS.ME, in the beginning of July 2014. Besides development, he provides consulting services and helps small businesses in the IT sector to manage problems while inspiring them to be and think big. He is also a member of the Committee of National Chamber (ICT) of Montenegro and MENSA. He likes programming in C/C++/C# even though he is skilled in HTML, PHP, TSQL, and more while going toward his dream of developing his own operating system. In his spare time, he plays tennis, dives, hunts, or plays chess. He favors brainstorming with his team and fresh, modern ideas in the area of IT and computer science. He is continuously going towards new beginnings and next-generation software solutions. He specially likes teaching computer science and math students through private classes and courses and shaping them to be qualified programmers and helping them find all the beauty of science. To see what his interests are and what he is doing, visit his company's website (http://expert.its.me) or his website (http://milos.expert.its.me), or contact him at milos@expert.its.me.
                    Sorry, we don't have any reviews for this title yet.

                    Submit Errata

                    Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                    Sample chapters

                    You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                    Frequently bought together

                    C++ Multithreading Cookbook +    BPEL pour les services web : Deuxième Edition [French] =
                    50% Off
                    the second eBook
                    Price for both: £35.00

                    Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                    What you will learn from this book

                    • Use an object-oriented programming model with inheritance, overloading, and polymorphism
                    • Solve common interprocess communication problems and avoid deadlocks or starvation problems in your application development
                    • Manage threads efficiently using the CThread class
                    • Explore .NET CLI/C++ features as well as synchronization objects and techniques
                    • Make use of parallel techniques in code design
                    • Use machine resources in concurrent execution
                    • Enable programs to work with each other using Message Passing
                    • Avoid common synchronization problems

                    In Detail

                    Creating multithreaded applications is a present-day approach towards programming. Developers expect their applications to be user friendly, with a rich interface and concurrent execution. The power of the C++ language alongside the native Win32 API features will give you a head start over all other languages and frameworks. With the power of C++, you can easily create various types of applications and perform parallelism and optimizations in your existing solutions.

                    This book is a practical, powerful, and easy-to-understand guide to C++ multithreading. You will learn how to benefit from the multithreaded approach and enhance your development skills to build better applications. This book will not only help you avoid problems when creating parallel code, but also help you to understand synchronization techniques in detail. The book also covers the Windows process model alongside scheduling techniques and interprocess communication.

                    Beginning from the basics, you will be introduced to the most powerful Integrated Development Environments ever made: Microsoft Visual Studio. You will then learn to use Windows kernel native features, as well as the characteristics of .NET framework. You will then understand how to solve some common concurrent problems and learn how to properly think in a multithreaded environment.

                    Using Mutexes, semaphores, critical sections, monitors, events & pipes, you will learn the most efficient way of synchronization in your C++ application. The book will then teach you the best possible approach to learn concurrency in C++.

                    Using the C++ Native Calls, the book will show you how to leverage machine hardware for optimum performance. The end goal of the book will be to impart various multithreading concepts that will enable you to do parallel computing and concurrent programming quickly and efficiently.


                    The book is an easy-to-follow guide for creating multi-threaded applications using C++. Each topic is thoroughly explained with multiple illustrations. Many algorithms, such as Dinning Philosophers Problem give you thorough explanations that will help you to understand and solve concurrent tasks.

                    Who this book is for

                    The book is intended for enterprise developers and programmers who wish to make use of C++ capabilities to learn the multithreaded approach. Knowledge of multithreading along with experience in C++ is an added advantage. However it is not a prerequisite.

                    Code Download and Errata
                    Packt Anytime, Anywhere
                    Register Books
                    Print Upgrades
                    eBook Downloads
                    Video Support
                    Contact Us
                    Awards Voting Nominations Previous Winners
                    Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                    Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software