定义

一、进程、线程、纤程的定义:

  • 进程:是操作系统资源分配的基本单位,比如内存、打开文件、网络IO,分配了独立的内存空间
    • 是能拥有资源和独立运行的最小单位
  • 线程:是操作系统资源调度的基本单位,cpu分配的基本单位
    • 线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程
  • 纤程:是用户态的线程,是纤程中的线程,切换和调度不需要经过OS(系统操作)

image.png

进程与线程的关系

  • 一个进程中一般至少有一个运行的线程:主线程
  • 一个进程中也可以同时运行多个线程,我们会说程序是多线程运行的
  • 多个进程之间的数据是不能同时直接共享的

纤程

支持度

一、2020-aSuncat:目前支持内置纤程的语言Kotlin Scala Go 等,Java没有官方的纤程支持,不过Quasar库可用

优缺点

一、优势:

  • 占有资源少:操作系统要启一个线程前后要为这个线程配的内存数据大概有1M,而纤程大概是4K
  • 切换较简单:由于纤程非常的轻量级,所以切换比较简单
  • 可以同时被启动很多个:10万个都没问题