Day1-C语言多线程1-前言

时间:2021年7月17日15:36:25

1.并发与并行

并行:同一时刻内同时处理多个操作,强调同一时刻点同时发生

img

并发:同一时间段内可以交替处理多个操作,强调同一时段内交替发生

img

1.2 硬件并发与任务切换

1.双核处理器并行执行 对比 单核处理器并发执行

img

2.实际上,多核并发更常见,处理的任务数更多。

双核并发

1.3 多线程并发与多进程并发

相比与任务并发;实际上,计算机术语中用得更多的是线程与进程。

任务:就是达到某一目的的操作。可以是一个进程,也可以是一个线程。

进程:是资源分配的基本单位。可以看作一个独立的程序,具有完备的数据空间和代码空间。把该进程放入进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位

线程:执行处理器调度的基本单位。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。因为每个线程一个堆栈,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程更易相互作用。

一个进程和一个线程最显著的区别是:线程有自己的全局数据。线程存在于进程中,因此一个进程的全局变量由所有的线程共享。由于线程共享同样的系统区域,**操作系统分配给一个进程的资源对该进程的所有线程都是可用的,**正如全局数据可供所有线程使用一样。

1.4使用并发的原因

使用并发的原因主要有两个:关注点分离和性能。

关注点分离:通过将相关的代码放在一起并将无关的代码分开,可以使你的程序更容易理解和测试,从而减少出错的可能性。你可以使用并发来分隔不同的功能区域,即使在这些不同功能区域的操作需要在同一时刻发生的情况下;

更高效的性能:为了充分发挥多核心处理器的优势,使用并发将单个任务分成几部分且各自并行运行,从而降低总运行时间。根据任务分割方式的不同,又可以将其分为两大类:一类是对同样的数据应用不同的处理算法(任务并行);另一类是用同样的处理算法共同处理数据的几部分(数据并行)。

2.C语言多线程

2.1 多线程就是多任务处理方式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程

  • 基于进程的多任务处理是程序的并发执行

  • 基于线程的多任务处理是同一程序的片段的并发执行。

在这里插入图片描述
下一节: Day1-C语言多线程1-基于线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值