C++C++11C++14C++17C++20Learn C++Syntax

How To Use Lambda Expression With std::thread In C++?

How To Use Lambda Expression With stdthread In C++

Lambda Expressions allow users to write an inline expression that can be used for short snippets of code that are not going to be reused and don’t require naming in your C++ app. The lambda expressions construct is introduced in C++ 11 and further developed in the C++17 and C++20 standards. In modern C++ development, they are very useful and can be used with std::thread in multi-thread operations. The std::thread class is a special class defined in <thread> header in the concurrency support library that comes with C++11. We can use the std::thread class in multi-thread operations with lambda expressions. In this post, we explain how to use a Lambda expression with std::thread in C++ with examples.

First, let’s learn what is a lambda in C++.

What is a lambda expression in C++?

Lambda Expression defines an anonymous function or a closure at the point where it is used. You can think of a lambda expression as an unnamed function (that’s why it’s called “anonymous”). Lambda expressions help make code cleaner, more concise, and allow you to see behavior inline where it’s defined instead of referring to an external method, like a function.

The syntax for a lambda expression consists of specific punctuation with = [ ] ( ) { ... } series. 

The Step by Step Guide To Lambda Expressions In A C++ App A schematic of Lambda Expressions

Lambda expressions are one example of modern C++ language features. If you want to know more about lambda expressions, you can read more about them here.

What is std::thread in C++?

In modern C++, a concurrency support library is designed to solve problems in multi-thread operations. This library includes built-in support for threads (std::thread), atomic operations (std::atomic), mutual exclusion (std::mutex), condition variables (std::condition_variable), and many other features.

The std::thread class is a special class defined in <thread> header that comes with C++11, and it allows multiple functions to execute and represents a single thread of execution concurrently. We can use the join() method of the thread that waits for the thread to finish its execution. 

Let’s see how we can use std::thread with a lambda expression,

Is there an example of using a lambda expression with std::thread in C++?

Here is a simple example how we can use lambda expression with std::thread in C++,

How To Use Lambda Expression With stdthread In C++ C++ Builder logo

C++ Builder is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, MacOS, iOS & Android operating systems. It is also easy for beginners to learn with its wide range of samples, tutorials, help files, and LSP support for code. RAD Studio’s C++ Builder version comes with the award-winning VCL framework for high-performance native Windows apps and the powerful FireMonkey (FMX) framework for cross-platform UIs.

There is a free C++ Builder Community Edition for students, beginners, and startups; it can be downloaded from here. For professional developers, there are Professional, Architect, or Enterprise version.

Oh hi there 👋
It’s nice to meet you.

Sign up to receive awesome C++ content in your inbox, every day.

We don’t spam! Read our privacy policy for more info.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial

Free C++Builder Community Edition

About author

Dr. Yilmaz Yoru has 35+ years of coding with more than 30+ programming languages, mostly C++ on Windows, Android, Mac-OS, iOS, Linux, and some other operating systems. He graduated and received his MSc and PhD degrees from the Department of Mechanical Engineering of Eskisehir Osmangazi University. He is the founder and CEO of ESENJA LLC Company. His interests are Programming, Thermodynamics, Fluid Mechanics, Artificial Intelligence, 2D & 3D Designs, and high-end innovations.
Related posts
C++C++11C++14C++17C++20Introduction to C++Learn C++

Learn Copy Constructors in C++ Classes

C++C++11C++14C++17Introduction to C++Learn C++Syntax

Learn How To Use Types Of Destructors In C++?

C++C++11C++14Learn C++Syntax

How To Convert u32string To A wstring In C++

C++C++11C++14C++17C++20Introduction to C++Learn C++

How To Learn The Move Constructors In Modern C++?