C++11并发编程(一):并发初探

本文介绍了C++11标准中引入的多线程支持,包括并发概念、为何使用并发以及何时避免并发。文章通过一个简单的入门示例,展示了如何创建和管理线程,强调了线程同步的重要性。
摘要由CSDN通过智能技术生成

一:概念

Ⅰ.背景

C++11标准中的一个最重要的新特性就是支持多线程程序.在语言级别承认多线程应用的存在,并且在库中为编写多线程程序提供组件.
使得不依赖平台编写多线程程序成为可能.并且加强了可移植性。

Ⅱ.并发介绍

1.计算机系统中的并发
提到计算机术语的并发,是指真正的在单个系统里面同时执行多个独立的活动.而不是顺序的一个接一个的
以前的任务快速切换很快,给我们并发的错觉,但是这并不是并发.
无论是多核处理器或者是拥有多个处理器,这个计算机能够真正的并行运行超过一个任务.我们才称之为硬件并发.
要考虑的最重要的因素是硬件线程的数量:即硬件可以真正并发运行多少个独立的任务.即使是具有真正的硬件并发的系统,也很容易有超过硬件可以并行运行的任务要执行.所以在这些情况下任务切换还是要被使用.

2.并发的途径
多进程并发
将应用程序分为多个,独立的,单线程的进程.他们运行在同一时刻.
这些独立的进程可以通过所有常规的进程间通信渠道相互传递信息.
多线程并发
在单个进程中运行多个线程.
线程很像轻量级的进程:每个线程相互独立运行,且每个线程可以运行不同的指令序列.
进程中的所有线程都共享相同的地址空间.并且从所有线程中访问到大部分数据–全局变量依然是全局的,指针,对象的引用或者数据可以在线程之间传递.
进程间的数据共享可能会遇到问题.意味着必须对线程之间的通信作大量的思考.
这里写图片描述

Ⅲ.为什么使用并发

为了划分关注点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值