Linux 进程、线程和协程

1、进程

1)操作系统资源分配的基本单位。

2)进程状态:阻塞、就绪和运行。

3)每个进程都有自己独立的进程地址空间。

4)一个进程崩溃了,不影响其他进程。

5)进程创建、切换和销毁等开销大。

6)进程间通信,效率低。

2、线程

1)操作系统调度的基本单位。

2)线程独有的资源,主要为了线程切换时,保留TCB(Thread Control Block,线程控制块)

2.1)线程id,线程在进程中的唯一标识。

2.2)寄存器,如函数调用栈的指针。

2.3)栈,如函数调用栈。

2.4)错误返回码

2.5)线程优先级,用于调度。

2.6)信号屏蔽码,每个线程关心的信号可能不一样。

3)同个进程的多个线程,共享进程地址空间。

4)主线程崩溃,同个进程的其他线程也会崩溃。

5)线程创建、切换和销毁等开销小。

6)线程间通信,因为共享进程地址空间,效率高很多,特别是在通信数据量大时更明显。

3、协程 

参考链接:https://www.cnblogs.com/yangwenhuan/p/12214751.html

原文地址:https://www.cnblogs.com/yangwenhuan/p/10360357.html