首页 > 代码库 > 多线程学习一:创建线程

多线程学习一:创建线程

 1 #include <iostream>
 2 #include <thread> //
 3 void hello() //
 4 {
 5 std::cout << "Hello Concurrent World\n";
 6 }
 7 int main()
 8 {
 9 std::thread t(hello); //
10 t.join(); //
11 }

程序代码如上:

增加了 #include <thread> ①,标准C++库中对多线程支持的声明在新的头文件中:管理线程的函数和类在 <thread> 中声明,而保护共享数据的函数和类在其他头文件中声明。写信息的代码被移动到了一个独立的函数中②。因为每个线程都必须具有一个初始函数(initial function),新线程的执行在这里开始。对于应用程序来说,初始线程是main(),但是对于其他线程,可以在 std::thread 对象的构造函数中指定。

与直接写入标准输出或是从main()调用hello()不同,该程序启动了一个全新的线程来实现,将线程数量一分为二——初始线程始于main(),而新线程始于hello()。

 

多线程学习一:创建线程