算了,我们走吧!
我们不能。
为什么不能?
我们在等待戈多。
本文主要针对C++多线程编程的过程及常见问题进行总结,如果需要了解线程相关知识,请参考
C++ 多线程使用流程
线程的创建及运行
创建与等待
在多线程程序中,我们需要在主线程中创建子线程,然后等待子线程执行完毕,C++11引入了线程类,使得我们能够按照面向对象的方式使用线程,一个简单的线程创建代码如下:
1 |
|
类似地,我们可以创建带有参数的线程函数,方法如下:
1 |
|
线程函数同样可以为lambda表达式或实例化的模板函数。
从底层了解线程的创建
我们将第一段进行编译,生成汇编代码,首先是线程函数和主函数
1 | ## 线程函数 |
获得线程ID
和进程一样,每个线程都包含自己的ID,我们可以在线程函数中使用this_thread::get_id()
来获得当前线程的ID号。
1 |
|