进程线程协程的区别

https://www.cnblogs.com/lei0213/p/8393323.html

### 进程池

一个进程占用一个CPU,占用一定的内存空间。一般CPU配置都是4核,如果开的进程太多,其他的程序就得等着。

###### 什么情况家使用多进程?

CPU是用来计算的。所以在CPU密集运算的情况下,才使用多进程。

具体要开几个进程,根据机器的实际配置和实际生产情况而定。

### `线程池`

进程里面才有线程,一个进程里面默认一个线程。

###### 什么情况下使用多线程?

多线程适合IO操作,但是也不是开启的线程越多越好,需要根据实际情况而定。

太多的线程会占用过多的系统资源(内存开销,CPU开销)。

### `协程`

协程:又称微线程纤程。通俗的讲就是比线程还要小的线程,所以才叫微线程。

优点:

1. 使用高并发、高扩展、低性能的;一个CPU支持上万的协程都不是问题。所以很适用于高并发处理。
2. 无需线程的上下文切换开销;(乍一看,什么意思呢?我们都知道python实际上是就是单线程,那都是怎么实现高并发操作呢,就是CPU高速的切换,每个任务都干一点,最后看上去是一起完事儿的,肉眼感觉就是多线程、多进程)

缺点:

1. 无法利用CPU的多核优点,这个好理解,进程里面包含线程,而协程就是细分后的协程,也就是说一个进程里面首先是线程其后才是协程,那肯定是用不了多核了,不过可以多进程配合,使用CPU的密集运算,平时我们用不到。

一般情况下用的比较多的是asyncio或者是gevent这两个技术实现协程,asyncio是python自带的技术,gevent第三方库,个人比较喜欢gevent这个技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值