笔记:C++多线程编程(1)

本文深入解析了并发、进程和线程的基本概念,探讨了它们在多核计算机时代的应用,以及如何通过多进程和多线程实现并行计算,提高程序效率。同时,文章还详细介绍了可执行程序、进程、线程之间的关系,以及线程创建的注意事项。

并发、进程、线程的基本概念

并发

概念:两个或者更多的任务同时发生(进行);一个程序同时执行多个独立的任务
背景:对于以往的单核计算机,同一时刻CPU只能执行一个任务,由操作系统调度,实现多个任务之间的切换,事项一种假象的“并发”,由于切换过程中需要保存各个人物的状态,所以会产生额外的时间开销
随着时代的发展,目前产生了多核计算机(双核,四核等等),能够真正意义上实现并发。
原因:并行可以提高程序的效率

可执行程序(文件)

硬盘上的一个文件,windows下的.exe文件

进程

可执行文件运行起来,就是创建了一个进程,也就是说,进程就是运行起来的程序

线程

概念

线程就是一条代码的执行通路

主线程

1.每个进程都有且仅有一个主线程
2.执行一个可执行程序,产生一个进程后,主线程也随之自动产生
3.程序执行中,是主线程在执行main()函数,两者互相依存,main()函数结束,主线程也随之结束

其他线程(自己创建)

1.可以通过自己编写程序创建新的线程(但不是主线程)
2.每创建一个新线程,就可以在同一时刻,多执行一件事(代码)
3.每创建一个新线程,就会需要一个独立的堆栈空间(1M),并且线程之间的切换需要保存许多中间状态,会增加时耗,所以线程并不是越多越好
(建议不超过200-300个,以实际情况为准)

并发实现办法

实现办法:
1.多进程实现并行(开多个程序)
2.多线程实现并行(在一个程序中通过代码实现)

多进程实现并行(了解)

进程之间的通信
同一电脑上:管道,文件,消息队列,共享内容等
不同电脑上:socket通信技术

多线程实现并行

更像是轻量级的进程,开销要小于多进程
优点在于:
1.每个进程有自己独立的运行路径
2.进程中的各个线程共享地址空间
3.全局变量,指针,引用都可以在线程之间传递
缺点在于:
要注意数据的一致性问题(不同线程同时访问统一空间的矛盾)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值