高并发,用Python适合吗?

Python016

高并发,用Python适合吗?,第1张

Python不太适合高并发,虽然可以做,但是问题还是比较大,特别如果是后端服务,需要很高的高并发的话,还是用其他语言。

要高并发的话, 多进程+协程的组合的并发性能远高于多线程。我在这篇文章中对python的并发方案有过比较。 像是要发各种请求的,其实和爬虫类似, 协程的方案比较合适,能达到很高的并发。

Python简介:

Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品。

Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

某个时间段内,数据涌来,这就是并发。如果数据量很大,就是高并发

高并发的解决方法:

1、队列、缓冲区

假设只有一个窗口,陆续涌入食堂的人,排队打菜是比较好的方式

所以,排队(队列)是一种天然解决并发的办法

排队就是把人排成 队列,先进先出,解决了资源使用的问题

排成的队列,其实就是一个缓冲地带,就是 缓冲区

假设女生优先,每次都从这个队伍中优先选出女生出来先打饭,这就是 优先队列

例如queue模块的类Queue、LifoQueue、PriorityQueue(小顶堆实现)

2、争抢

只开一个窗口,有可能没有秩序,也就是谁挤进去就给谁打饭

挤到窗口的人占据窗口,直到打到饭菜离开

其他人继续争抢,会有一个人占据着窗口,可以视为锁定窗口,窗口就不能为其他人提供服务了。

这是一种锁机制

谁抢到资源就上锁,排他性的锁,其他人只能等候

争抢也是一种高并发解决方案,但是,这样可能不好,因为有可能有人很长时间抢不到

3、预处理

如果排长队的原因,是由于每个人打菜等候时间长,因为要吃的菜没有,需要现做,没打着饭不走开,锁定着窗口

食堂可以提前统计大多数人最爱吃的菜品,将最爱吃的80%的热门菜,提前做好,保证供应,20%的冷门菜,现做

这样大多数人,就算锁定窗口,也很快打到饭菜走了,快速释放窗口

一种提前加载用户需要的数据的思路,预处理 思想,缓存常用

更多Python知识,请关注:Python自学网!!

Python因语法简洁、上手简单、功能强大特点,广泛应用于网站开发、数据分析、爬虫、自动化运维、人工智能、大数据、游戏开发等领取。

1、做日常任务,比如下载视频、MP3、自动化操作excel、自动发邮件。

2、做网站开发、web应用开发,很多著名的网站像知乎、YouTube就是Python写的。

许多大型网站就是用Python开发的,例YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。

3、做网络游戏的后台,很多在线游戏的后台都是Python开发的。

4、系统网络运维。