c++多线程编程 进程、线程的概念

1. 并发、线程、进程的概念

1.1并发

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

单核cpu的计算机在某一时刻只能指行一个任务,由操作系统调度,进行多次的任务切换,产生并发的假象,这种切换是要有时间的开销的,比如操作系统要保存切换时的各种状态、执行进度等信息,切换回来时要复原这些信息。

随着硬件的发展,现在出现了多核处理器,在一块芯片上有多个核,能够实现真正的并发执行多个任务。

使用并发的动机:主要是同时执行多个任务,提高效率。

其中实现并发的方式:
(1)通过多个进程实现并发、
(2)通过多线程实现并发

1.2 进程和线程

运行起来的可执行程序就是进程,进程是由线程构成的,一个进程可以包含多个线程,但是主线程只有一个。

可以由主线程产生其他线程,这时就会产生多线程,这就是并发的一种。虽然多线程可以提高效率,但是线程并不是越多越好,每个线程都有自己独立的堆栈空间,线程之间的切换要保存很多中间状态,切换会消耗本该属于程序运行的时间。

1.3 线程和进程之间的对比

和进程相比,线程有以下优点:
(1)线程启动速度更快,更轻量级
(2)系统资源消耗更少,执行速度更快,比如共享内存这种通信方式比任何其他的通信方式都快

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值