C++多线程(一):基本概念

目录

并发、进程、线程

1、并发

2、可执行程序

3、进程

4、线程

5、多线程(并发)

多进程和多线程并发

1、多进程并发

2、多线程并发(重点)

 3、总结


并发、进程、线程

1、并发

两个或更多的任务同时发生:一个程序同时执行多个独立的任务

单核cpu:某一时刻只能执行一个任务,多任务时要进行多次“任务切换”(不是真正的并发--并发假象)

多核cpu:同一时刻可以执行多个任务(硬件并发)。

使用并发可以同时执行多个任务,提高性能

2、可执行程序

windows下后缀为.exe的文件

3、进程

可执行程序运行起来,就叫创建了一个进程。

4、线程

每个进程都有一个主线程,主线程是唯一的,一个进程中只能有一个主线程;

进程启动后主线程自动启动。

线程是代码执行的通路;

除了主线程,我们可以通过代码创建其他的线程,其他线程走其他的通路甚至是去不同的地方;

每创建一个线程,我们就可以在同一时刻执行多个任务;

5、多线程(并发)

线程并不是越多越好,每个线程都需要一个独立的堆栈空间(1M),线程之间的切换需要保存很多中间状态;

而且线程之间的切换会耗费本该属于程序运行的时间

多进程和多线程并发

1、多进程并发

多个可执行文件之间的并发

2、多线程并发(重点)

一个进程中创建了多个线程,一个进程中的线程共享地址空间(共享内存)

全局变量、指针、引用,都可以在线程间传递,使用多线程的开销远远小于多进程

 3、总结

和进程相比、线程的优点:

(1)线程启动速度更快,更加轻量级

(2)系统资源开销更少,执行速度更快,比如共享内存这种通信方式比其他任何通信方式都要快

缺点:

(1)使用起来有一定难度,要小心处理数据一致性问题

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值