> For the complete documentation index, see [llms.txt](https://bing.gitbook.io/phper/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bing.gitbook.io/phper/base/networks/jin-cheng-he-xian-cheng/jin-cheng-xian-cheng-xie-cheng.md).

# 进程、线程、协程

![img](https://3031472641-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LAr2Be4dyt9wCNUgU_3%2Fuploads%2Fgit-blob-f9b8e4e9c2c659c4ee2fa66ac7a7924d72249bb5%2Fbf0720da6789e599daf672e1db04058a.jpg?alt=media)

### 进程

1. 多进程模式最大的优点就是稳定性高，因为一个子进程崩溃了，不会影响主进程和其他子进程。

### 线程

1. 多线程模式致命的缺点就是任何一个线程挂掉都可能直接造成整个进程崩溃，因为所有线程共享进程的内存。
2. 线程的实现可以分为两类：用户级线程(User-Level Thread)和内核线线程(Kernel-Level Thread)
3. 线程自己不拥有系统资源

### 进程和线程

1. 进程是正在运行的程序的实例,进程是内核分配资源的最基本的单元,而线程是内核执行的最基本的单元,进程内可以包含多个线程

### 协程

1. 是用户空间下的线程
2. 让原来要使用异步+回调方式写的非人类代码,可以用看似同步的方式写出来

### 参考资料

![协程的好处有哪些？](https://www.zhihu.com/question/20511233) ![用户空间和内核空间实现线程](https://www.cnblogs.com/Brake/p/Operating_System_Thread_Part3.html)
