C++11的多线程并发编程(一)
在疫情期间以及未来毕业后即将工作的憧憬中,给自己立个学习flag,学习并第一次通过CSDN记录下C++11的多线程并发编程。初学者的我写的不好,还望大家多多指正与批评,
学习多线程并发编程首先一定得熟悉并发相关概念,其中包括可执行程序,进程,线程,C++11。
了解基础概念
-
可执行程序
当在windows系统下,鼠标双击某后缀名.exe软件时,通过后台查看,运行的.exe即为可执行程序;而在Linux系统下,这里我实验的是Ubuntu下,通过终端ls -la查看可执行文件获取该文献是都具有x权限,即判断是否为可执行程序。 -
进程
可执行程序与进程的关系密不可分,当可执行程序运行起来,即创建一个进程进行运行该程序,简称–进程就是以及跑起来的可执行程序。
例如,编写一个c++程序test.cpp,编译 通过./test 运行,即该程序运行起来了,即创建了一个进程,而每个进程都有一个主线程,即main线程,执行输出代码。
#include <iostream>
using namespace std;
int main()
{
cout << "hello comedy" << endl;
return 0;
}
-
线程
线程就是在进程中执行指定任务,上例中即为主线程执行过程,而并发是指多线程执行不同任务,在进程中,多线程同时完成不同任务。当然,当任务多到一定数量时,线程的数量的增加会带来系统的时间消耗。 -
多进程并发与多线程并发的区别
多进程的并发在同一台电脑,多个可执行程序共同执行,例如,一边听音乐和一边浏览网页,而进程之间的通信就是管道,文件,共享内存。
而在不同电脑上,不同进程之间的通信就需要网络通信技术传递数据。多线程并发即是在一个进程中,创建了多个线程,同时进行多任务的执行,而进程的通信方式则可以通过定义全局变量,全局指针,引用来进行传递。
下一个开始记录c++11的新标准线程库。