当前位置:网站首页>并行、并发及对于高并发优化的几个方向
并行、并发及对于高并发优化的几个方向
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?
边栏推荐
- 【杂谈】Error loading psycopg2 module :No module named psycopg2
- Review of database -- 3. SQL language
- PTA class a 1002
- 【socket】三次握手是在listen中完成,accept只从完成连接的队列中拿出一个连接
- L2-005 集合相似度(vector、set求并交集)
- Application of crosstab in SQL Server
- Data communication foundation telnet remote management equipment
- equals与==的区别
- [Halcon vision] threshold segmentation
- Data communication foundation - layer 2 switching principle
猜你喜欢

Cause: couldn‘t make a guess for 解决方法

The CLOB field cannot be converted when querying Damon database

Data communication foundation - layer 2 switching principle

如何写一篇百万阅读量的文章

30 minutes to thoroughly understand the synchronized lock upgrade process

【Halcon视觉】形态学腐蚀
The software cannot be opened

What will the new Fuzhou Xiamen railway bring to Fujian coastal areas?

数据库的复习--1.概述

The practice of OpenCV -- bank card number recognition
随机推荐
How to use Gmail to pick up / send mail on Foxmail
404页面和路由钩子
Network related journals and conferences in CS
抓包工具fiddler和wireshark对比
Some descriptions of DS V2 push down in spark
关于模板函数声明与定义的问题[通俗易懂]
【C#语言】LINQ概述
Learning about tensor (III)
Mlx90640 infrared thermal imager temperature sensor module development notes (6)
About automatic operation on Web pages
[Halcon vision] image filtering
2022/07/25------字符串的排列
我们的Web3创业项目,黄了
The charm of SQL optimization! From 30248s to 0.001s
【Halcon视觉】算子的结构
[socket] the three handshakes are completed in listen, and accept only takes out one connection from the queue that completes the connection
Introduction to latex, EPS picture bounding box
Redis realizes the correct posture of token bucket
Kaptcha image verification code integration
码云,正式支持 Pages 功能,可以部署静态页面