How to Create a Thread in C++? Last Updated : 23 Jul, 2025 Comments Improve Suggest changes Like Article Like Report A thread is a basic element of multithreading which represents the smallest sequence of instructions that can be executed independently by the CPU. In this article, we will discuss how to create a thread in C++. How to Create a Thread in C++?In C++, the std::thread is a class template that is used to create and manage threads. Also, while creating a thread, we need to pass the instructions that the thread should execute. These instructions can be passed in three forms: Function PointersFunctorsLambda ExpressionsC++ Program to Create a New Thread Using Function Pointer C++ // C++ Program to Create a new thread using function pointer // Function #include <iostream> #include <thread> using namespace std; // Function to be executed by the new thread void myFunction() { cout << "Hello from the new thread!" << endl; } int main() { // Create a new thread that calls myFunction thread newThread(myFunction); // Wait for the new thread to finish execution newThread.join(); cout << "Hello from the main thread!" << endl; return 0; } Output Hello from the new thread! Hello from the main thread!In this program, we first define a function myFunction that will be executed by the new thread. We then create a new thread newThread and pass the function pointer to its constructor. The join method is called on newThread to wait for the new thread to finish execution before the main thread continues. C++ Program to Create a New Thread Using Lambda ExpressionWe can also create this thread using lambda expression. C++ // C++ Program to Create a Thread with a Lambda Expression #include <iostream> #include <thread> using namespace std; int main() { // Create a new thread that calls a lambda expression thread newThread([] { cout << "Hello from the new thread!" << endl; }); // Wait for the new thread to finish execution newThread.join(); cout << "Hello from the main thread!" << endl; return 0; } Output Hello from the new thread! Hello from the main thread!In this program, we create a new thread newThread and pass a lambda expression to its constructor. The lambda expression outputs a message to the console. The join method is called on newThread to wait for the new thread to finish execution before the main thread continues. To know more about multithreading, refer to the article - Multithreading in C++ Comment More infoAdvertise with us P prajwalgawande998 Follow Improve Article Tags : C++ Programs C++ cpp-multithreading CPP Examples Practice Tags : CPP Explore C++ Programming Language 5 min read C++ OverviewIntroduction to C++ Programming Language 3 min read Features of C++ 5 min read History of C++ 7 min read Interesting Facts about C++ 2 min read Setting up C++ Development Environment 8 min read Difference between C and C++ 3 min read C++ BasicsUnderstanding First C++ Program 4 min read C++ Basic Syntax 4 min read C++ Comments 3 min read Tokens in C 4 min read C++ Keywords 2 min read Difference between Keyword and Identifier in C 3 min read C++ Variables and ConstantsC++ Variables 4 min read Constants in C 4 min read Scope of Variables in C++ 7 min read Storage Classes in C++ with Examples 6 min read Static Keyword in C++ 5 min read C++ Data Types and LiteralsC++ Data Types 7 min read Literals in C 4 min read Derived Data Types in C++ 4 min read User Defined Data Types in C++ 4 min read Data Type Ranges and Their Macros in C++ 3 min read C++ Type Modifiers 4 min read Type Conversion in C++ 4 min read Casting Operators in C++ 5 min read C++ OperatorsOperators in C++ 9 min read C++ Arithmetic Operators 4 min read Unary Operators in C 5 min read Bitwise Operators in C 6 min read Assignment Operators in C 4 min read C++ sizeof Operator 3 min read Scope Resolution Operator in C++ 4 min read C++ Input/OutputBasic Input / Output in C++ 5 min read cin in C++ 4 min read cout in C++ 2 min read Standard Error Stream Object - cerr in C++ 2 min read Manipulators in C++ 4 min read C++ Control StatementsDecision Making in C (if , if..else, Nested if, if-else-if ) 7 min read C++ if Statement 3 min read C++ if else Statement 3 min read C++ if else if Ladder 3 min read Switch Statement in C++ 5 min read Jump statements in C++ 4 min read C++ Loops 7 min read for Loop in C++ 6 min read Range-Based for Loop in C++ 3 min read C++ While Loop 3 min read C++ do while Loop 4 min read C++ FunctionsFunctions in C++ 8 min read return Statement in C++ 4 min read Parameter Passing Techniques in C 3 min read Difference Between Call by Value and Call by Reference in C 4 min read Default Arguments in C++ 5 min read Inline Functions in C++ 6 min read Lambda Expression in C++ 4 min read C++ Pointers and ReferencesPointers and References in C++ 5 min read C++ Pointers 8 min read Dangling, Void , Null and Wild Pointers in C 6 min read Applications of Pointers in C 4 min read Understanding nullptr in C++ 3 min read References in C++ 5 min read Can References Refer to Invalid Location in C++? 2 min read Pointers vs References in C++ 5 min read Passing By Pointer vs Passing By Reference in C++ 5 min read When do we pass arguments by pointer? 5 min read Like