C++多线程基础理解

C++多线程基础理解,第1张

概念

1.1 并发

定义:两个或者更多任务(独立的活动)同时发生(进行): 一个程序同时执行多个独立的任务;

原因: 主要可以同时进行多个事情,提高性能。

1.2 进程

进程就是运行起来的可执行程序。

1.3 线程

每个进程(执行起来的可执行程序), 都有唯一的一个主线程;当执行可执行程序时, 产生一个进程后,这个主线程就随着这个进程默默启动起来了,主线程和进程唇齿相依。

线程: 用来执行代码的。线程可理解为一条代码的执行通路。

除了主线程之外,可以通过写代码来创建其他线程,其他线程走的是别的道路,甚至可以去不同的地方。

每创建一个新线程,就可以再同一时刻,多干一个不同的事(多走一条不同的代码执行路径)。

1.4 多进程并发

比如账号服务器一个进程,游戏服务器一个进程。服务器进程之间存在通信(消息队列,共享内存。 word启动后就是一个进程,ie浏览器启动后就是一个进程。

1.5 多线程并发

线程:轻量级的进程。每个进程有自己独立的运行路径,但一个进程中的所有线程共享地址空间(共享内存),全局变量、指针、全局内存、全局引用都可以在线程之间传递,所以多线程开销远远小于多进程;

共享内存带来的新问题,数据一致性问题;线程A, 线程B向一个内存写数据得控制先后顺序。

线程并不是越多越好,每个线程,都需要一个独立的堆栈空间(大约1M),线程之间的切换要保存很多中间状态,切换也会耗费本该属于程序运行的时间;

线程创建
#include  //类标准库
#include
using namespace std;

int main()
{
   thread my_thread;
   if(my_thread.joinable()) 
   {
       my_thread.join();//等待子线程
   }
   return 0; 
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/874651.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存