多线程学习一:创建线程
Posted Nancy26
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程学习一:创建线程相关的知识,希望对你有一定的参考价值。
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()。
以上是关于多线程学习一:创建线程的主要内容,如果未能解决你的问题,请参考以下文章
newCacheThreadPool()newFixedThreadPool()newScheduledThreadPool()newSingleThreadExecutor()自定义线程池(代码片段