进程 线程 协程

2.1什么是线程

线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)

它被包含在进程中,是进程运作的单位。一条线程指进程中一个单一

顺序控制流,一条进程可以并发多个线程,每条线程并行执行不同的任务

一个线程由线程ID,当前指令指针(pc),寄存器集合和堆栈组成

线程是进程的实体,是被系统调度和分派的基本单位

线程自己不拥有系统资源,只有一点在运行上必不可缺少的资源

可以与同一个进程的其他线程共享进程所用语的全部资源

一个线程可以创建和撤销另一个线程

统一进程中多个线程之间可以并发执行

线程也有就绪,阻塞和运行三种基本状态

就绪指线程具备运行的所有条件,逻辑上可以运行,在等待处理机

运行指线程占有处理机正在运行

阻塞状态线程在等待一个事件,逻辑上不可执行

每一个程序都至少有一个线程,若程序只有一个线程那就是程序本身

在单个程序中同时运行多个线程完成不同的工作,称多线程

 

 

2.2什么是进程?

进程process是计算机中程序关于某数据集合上的一次运行活动,是系统进行资源分配和

调度的基本单位,是操作系统结构的基础

进程是线程的容器,

程序是指令,数据,及其组织形式的描述

进程是程序的实体

里面包含对各种资源的调用,内存的管理,网络接口的调用,对各种资源管理的集合就可以成为进程

2.3 线程进程的区别

1.线程共享内存空间;进程的内存独立

2.同一个进程的线程之间可以直接交流;

两个进程通信必须通过中间代理来实现

3.创建新线程简单;创建新进程需要对父进程进行克隆

4,一个线程可以控制和操作同一个进程里的其他线程;但是进程只能操作子进程

5,改变主线程,可能影响其他线程;改变父进程,不影响子进程

 

2.4 什么是协程

协程又称微线程,简单来说协程是一种用户态的轻量级线程

线程是系统级别的,协程是程序级别的,由程序员根据自己调度

 

协程拥有自己的寄存器上下文和栈。调度切换时,将寄存器上下文和栈保存到其他地方,

在切回来时,恢复先前保存的寄存器上下文和栈。因此:协程保留上一次的调用状态,

 

原文地址:https://www.cnblogs.com/wangyao2317072926/p/7918568.html