进程,线程,协程的区别

谁说我不能喝 提交于 2020-02-27 13:19:43

都可以提高并发能力
进程和线程是计算机中真是存在的,而协程是程序员人为创造出来的
#是什么
进程是计算机资源分配的最小单位.
线程是计算机中可以被cpu调度的最小单位.
协程也可以称为“微线程”,实际上让一个线程轮番执行一些任务
#联系
一个进程中可以有多个线程,同一个进程中的线程可以共享此进程中的资源,
一个线程可以有多个协程,
一个应用程序中至少有一个进程,一个进程中至少有一个线程
#应用场景
在Python中因为有GIL锁,他同一时刻保证一个进程中只有一个线程可以被cpu调度,所以在使用Python开发时要注意:
计算密集型,用多进程.
IO密集型,用多线程/协程+IO操作

单纯的协程没办法提高并发,只是代码之间的切换,加上IO自动切换才能有意义
默认进程之间无法进行资源共享,如果主要想要通讯可以基于:文件/网络/Queue.

资源浪费
进程>线程>协程+IO切换
节省时间
进程≈线程≈协程+IO操作<串行操作

形象的关系

工厂 -> 应用程序
车间 -> 进程
工人 -> 线程
螺丝钉->协程

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!