C++之并发编程 第一章 C++并发多线程介绍

1.1 何为并发

1.1.1 计算机系统中的并发

单个系统中 “同时” 执行多个独立的任务。

1.1.2 并发的途径

  • 多进程
    将应用程序分为多个独立的进程,它们同一时刻运行。进程间可以通过一些进程间通信方式(管道、信号、信号量、共享内存、消息队列、套接字等)进行信息传递。
    在这里插入图片描述
    优点:操作系统在进程间提供附加的保护操作和更高级别的通信机制,编程简单;可以通过远程连接,在不同的机器上运行独立的进程。
    缺点:设置复杂、速度慢,运行多个进程需要的开销大。

  • 多线程
    在单个进程中运行多个线程。进程中的所有线程共享地址空间。

在这里插入图片描述
优点:开销小,创建切换简单、速度快、CPU利用率高
缺点:编程困难,可靠性差。

1.1.3 并发与并行

并发:一个时间段内。
并行:同一时刻。


1.2 为什么使用并发?

1.2.1 为了分离关注点

将相关的代码与无关的代码分离,可以使程序更容易理解和测试。

1.2.2 为了性能

两种方式利用并发提供性能:

  1. 任务并行:将一个单个任务分成几部分,且各自并行运行,从而降低总运行时间。
  2. 数据并行:每个线程在不同的数据部分上执行相同的操作。

1.2.3 什么时候不使用并发

收益比不上成本。

性能增益小于预期
线程的资源有限
运行越多的线程,操作系统就需要越多的上下文切换。


1.3 C++ 中的并发和多线程

1.3.2 新标准支持并发

C++11标准库中扩展了:包含了用于管理线程、保护共享数据、线程间同步操作、低层原子操作的各种类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值