ftp并发大量进程_并发编程模型

背景知识

关键词解释

  1. 并发:单核cpu上面执行多项任务的能力,让cpu将时间分片,以时间片的形式执行多个程序,用户感知为同时执行两个程序。(大猪蹄子)
  2. 进程:cpu在切换程序的时,如果不保存上一个程序的状态(即Context,上下文),直接切换下一个程序,就会丢失上一个程序的一系列状态,于是引入了进程这个概念,用以划分好程序运行时所需要的资源。因此进程就是一个程序运行时候的所需要的基本资源单位(也可以说是程序运行的一个实体)。
  3. 并行:多核cpu,每个核都有进程在同时运行,这就是并行(发挥的是多核的优势)。
  4. 用户态与内核态:为了防止用户程序做出一些危险的指令(如关机,更改系统变量,修改别的进程数据),系统将运行状态分为:用户态和内核态。用户态是用户的程序所在的状态,不能随便对内核的底层进行操作。但是内核提供了一种调用内核的接口,如果用户的程序需要使用内核的底层操作,可以调用这些接口(称为系统调用),在进行系统调用的时候,cpu会切换到内核态,才能执行内核的函数。
  5. 线程:cpu切换多个进程的时候,会花费不少的时间。因为切换进程需要切换到内核态,而每次调度需要内核态都需要读取用户态的数据,进程一旦多起来,cpu调度会消耗一大堆资源,因此引入了线程的概念(为了降低切换上下文造成的性能损失),线程本身几乎不占有资源,他们共享进程里的资源,内核调度起来不会像进程切换那么耗费资源。
  6. 协程:线程还是需要内核去进行调度,切换起来也是需要把用户态的数据写入到内核态,也是需要耗费一定的计算机资源。引入协程就是为了把自己的调度算法交给程序(用户态)去进行管理,能以更小的资源去进行并发(为避免内核级别的上下文切换造成的性能损失,进而突破了线程在IO上的性能瓶颈)。
  7. 同步异步,阻塞非阻塞:同步和异步关注的是消息通信机制。阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态。

疑问

1.并发和并行的区别?

并发是同一时间应对(dealing with)多件事情的能力;并行是同一时间动手做(doing)多件事情的能力。(并发是单核cpu,逻辑上同时执行;并行是多核cpu,物理上同时执行),一般不会严格区分这两个概念,默认并发就是指并行
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值