在某个时间段内,数据大量涌入,这就是并发。如果数据量大,就是高并发
高并发的解决方法:
1、队列、缓冲区
假设只有一个窗口,人们陆续涌入食堂,排队取餐是更好的方式
所以,排队(队列)是一种天然解决并发的办法
排队就是把人排成一个队列,先进先出,解决了资源使用问题
形成的队列其实就是一个缓冲区,buffer zone
假设女生优先,每次从这个队里先选女生,就先出来吃饭,这就是优先队列
例如queue模块的类Queue、LifoQueue、PriorityQueue(小顶堆实现)
2、争抢
只开一扇窗,可能没有顺序,就是谁挤进来就给谁做饭
挤到窗口的人占据窗口,直到打到饭菜离开
如果其他人继续打架,就会有一个人占据了窗口,也算是锁住了窗口,窗口不能为他人提供服务。
这是一种锁机制
谁抢到资源就会被加锁,独占锁,其他人只能等待
加扰也是一种高并发的解决方案,但是这样未必好,因为可能有人抢的时间久了
3、预处理
如果排长队的原因是大家点餐等了很久,因为没有食物吃,需要现做现做,不留食物就锁窗
食堂可以提前统计大多数人喜欢的菜品,80%的人气菜品提前准备,保证供应,20%的冷门菜品现做现做
这样,即使大部分人锁上了窗户,也会迅速打饭走人,迅速释放窗户
一种预先加载用户需要的数据的方式,预处理思路,常用于缓存
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python Tkinter Grid 布局管理器使用10/08
- ♥ python如何比较字符串08/26
- ♥ Python 操作带参数的装饰器12/31
- ♥ python如何判断一个模块是否存在11/02
- ♥ python如何巧妙地创建滑块和选择器12/13
- ♥ python hill sort的用法10/18
内容反馈