Linux中的进程、线程与协程学习

进程、线程与协程

  • 进程:

系统进行资源分配和调度的基本单位,是应用程序运行的载体。

进程是一个抽象的概念,一般由程序、数据集合和进程控制块三部分组成。

程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块(Program Control Block,简称PCB),包含进程的描述信息和控制信息,是进程存在的唯一标志。

多进程中的数据天然是隔离的,不存在并发的问题;但是创建线程时间上面的开销很慢

  • 线程:

线程是进程的一个实体,一个进程可以由多个线程,是 CPU 调度与分派的基本单位,由线程ID、程序计数器、寄存器集合和堆栈组成,共享进程的内存空间。

它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

  • 协程

轻量级的线程,一个线程拥有多个协程;协程的暂停完全由程序控制,发生在用户态,没有内核切换的开销

  1. 线程的切换由操作系统负责调度,协程由用户自己进行调度
  2. 线程 Stack 默认为 1M,协程更加轻量,接近 1K
  3. 由于在同一个线程上,避免的竞争关系而使用锁
  4. 适用于被阻塞且需要大量并发的场景。但不适合大量计算的多线程

进程间通信(IPC,InterProcess Communica

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值