当前位置:网站首页>并行、并发及对于高并发优化的几个方向
并行、并发及对于高并发优化的几个方向
2022-07-26 10:28:00 【范学博】
转载过来的,个人保留,原谅我此次搬砖,毕竟搬砖是我的工作?
1.并发和并行的区别
- 并发:当有多个线程在操作时,如果系统只有一个CPU,把CPU运行时间划分成若干个时间段,分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态。这种方式我们称之为并发(Concurrent)。并发=间隔发生
- 并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。 并行=同时进行
- 高并发是互联网分布式系统架构设计中必须考虑的因素之一,通常是指通过设计保证系统能够同时并行处理很多请求。
- 区别:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。
2.高并发是短时间内大量访问和请求,例如12306抢票和天猫双11活动,想系统能够适应高并发状态,则需要全面优化优化,包括,硬件、网络、系统架构、开发语言的选取、数据结构的运用、算法优化、数据库优化……而多线程只是其中解决方法之一。
多线程在解决高并发问题中所起到的作用就是使计算机的资源在每一时刻都能达到最大的利用率,不至于浪费计算机资源使其闲置
3.实现高并发需要考虑:
- 系统的架构设计,如何在架构层面减少不必要的处理(网络请求,数据库操作等)
- 网络拓扑优化减少网络请求时间、如何设计拓扑结构,分布式如何实现?
- 系统代码级别的代码优化,使用什么设计模式来进行工作?哪些类需要使用单例,哪些需要尽量减少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?
边栏推荐
- Unit test, what is unit test and why is it so difficult to write a single test
- [Halcon vision] image filtering
- Use of pclint in vs2013
- Introduction to latex, EPS picture bounding box
- 2022/07/25 ------ arrangement of strings
- The charm of SQL optimization! From 30248s to 0.001s
- Perfect / buffer motion framework in sentence parsing JS (for beginners)
- [Halcon vision] image filtering
- 新建福厦铁路全线贯通 这将给福建沿海带来什么?
- Use spiel expressions in custom annotations to dynamically obtain method parameters or execute methods
猜你喜欢

The difference between equals and = =

新建福厦铁路全线贯通 这将给福建沿海带来什么?

PLC概述

Learning about tensor (III)
![[Halcon vision] image filtering](/img/7a/b95f8977f02fab644ef9fb205424e7.png)
[Halcon vision] image filtering

canvas上传图片base64-有裁剪功能-Jcrop.js
![[Halcon vision] array](/img/29/905d93795a24538fded18d2d377e52.png)
[Halcon vision] array

2022/07/25 ------ arrangement of strings
![[award-winning question] ask Judea pearl, the Turing prize winner and the father of Bayesian networks](/img/0f/01d6e49fff80a325b667784e40bff3.png)
[award-winning question] ask Judea pearl, the Turing prize winner and the father of Bayesian networks
The software cannot be opened
随机推荐
Kaptcha image verification code integration
What will the new Fuzhou Xiamen railway bring to Fujian coastal areas?
Data communication foundation - layer 2 switching principle
图片随手机水平移动-陀螺仪。360度设置条件
cavans实现静态滚动弹幕
2022/07/25------字符串的排列
软件打不开了
【C#语言】LINQ概述
Like, "new programmer" e-book is free for a limited time!
Data communication foundation STP principle
数据库的复习--3.SQL语言
头歌 Phoenix 入门(第1关:Phoenix 安装、第2关:Phoenix 基础语法)
js下载文件,FileSaver.js导出txt、excel文件
2022pta平时训练题(1~10题字符串处理问题)
PLC overview
如何写一篇百万阅读量的文章
equals与==的区别
Using native JS to realize custom scroll bar (click to reach, drag to reach)
Cause: couldn‘t make a guess for 解决方法
Application of crosstab in SQL Server