Python高并发和多线程有什么关系


Posted in Python onNovember 14, 2020

“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程

多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。

高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况;天猫双十一活动)。

该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。如果高并发处理不好,不仅仅降低了用户的体验度(请求响应时间过长),同时可能导致系统宕机,严重的甚至导致OOM异常,系统停止工作等。如果要想系统能够适应高并发状态,则需要从各个方面进行系统优化,包括,硬件、网络、系统架构、开发语言的选取、数据结构的运用、算法优化、数据库优化……而多线程只是其中解决方法之一。

实现高并发需要考虑:

  • 系统的架构设计,如何在架构层面减少不必要的处理(网络请求,数据库操作等)
  • 网络拓扑优化减少网络请求时间、如何设计拓扑结构,分布式如何实现?
  • 系统代码级别的代码优化,使用什么设计模式来进行工作?哪些类需要使用单例,哪些需要尽量减少new操作?
  • 提高代码层面的运行效率、如何选取合适的数据结构进行数据存取?如何设计合适的算法?
  • 任务执行方式级别的同异步操作,在哪里使用同步,哪里使用异步?
  • JVM调优,是以server模式还是以clien模式运行,如何设置Heap、Stack、Eden的大小,如何选择GC策略,控制Full GC的频率?
  • 数据库优化减少查询修改时间。数据库的选取?数据库引擎的选取?数据库表结构的设计?数据库索引、触发器等设计?是否使用读写分离?还是需要考虑使用数据仓库?
  • 缓存数据库的使用,如何选择缓存数据库?是Redis还是Memcache? 如何设计缓存机制?
  • 数据通信问题,如何选择通信方式?是使用TCP还是UDP,是使用长连接还是短连接?NIO还是BIO?netty、mina还是原生socket?
  • 操作系统选取,是使用winserver还是Linux?或者Unix?
  • 硬件配置?是8G内存还是32G,网卡10G还是1G?

以上的这些问题在高并发中都是必须要深入考虑的,就像木桶原理一样,只要其中的某一方面没有考虑到,都会造成系统瓶颈,影响整个系统的运行。而高并发问题不仅仅涉及面之广,同时又要求有足够的深度!!!

而多线程在这里只是在同/异步角度上解决高并发问题的其中的一个方法手段,是在同一时刻利用计算机闲置资源的一种方式。

多线程在解决高并发问题中所起到的作用就是使计算机的资源在每一时刻都能达到最大的利用率,不至于浪费计算机资源使其闲置。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 算法 排序实现快速排序
Jun 05 Python
Python脚本实现自动发带图的微博
Apr 27 Python
python递归查询菜单并转换成json实例
Mar 27 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 Python
Android分包MultiDex策略详解
Oct 30 Python
Python中存取文件的4种不同操作
Jul 02 Python
Random 在 Python 中的使用方法
Aug 09 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
Dec 12 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
Python filter过滤器原理及实例应用
Aug 18 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
Django跨域请求原理及实现代码
Nov 14 #Python
Pycharm如何自动生成头文件注释
Nov 14 #Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 #Python
Django websocket原理及功能实现代码
Nov 14 #Python
Pycharm常用快捷键总结及配置方法
Nov 14 #Python
Django model class Meta原理解析
Nov 14 #Python
详解python爬取弹幕与数据分析
Nov 14 #Python
You might like
PHP 八种基本的数据类型小结
2011/06/01 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
Python科学计算环境推荐——Anaconda
2014/06/30 Python
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
Python 中的lambda函数介绍
2018/10/10 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
资产经营总监岗位职责
2013/12/04 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
电教室标语
2014/06/20 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
暑期培训班招生方案
2014/08/26 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
学生检讨书范文
2015/01/27 职场文书
先进教师个人总结
2015/02/11 职场文书
材料采购员岗位职责
2015/04/03 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
Python中的socket网络模块介绍
2022/07/23 Python