什么是多执行绪 什么是高并发?

高并发和多执行绪”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多执行绪
多执行绪是完成任务的一种方法,高并发是系统执行的一种状态,通过多执行绪有助于系统承受高并发状态的实现。
高并发是一种系统执行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在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?
……
……
以上的这些问题在高并发中都是必须要深入考虑的,就像木桶原理一样,只要其中的某一方面没有考虑到,都会造成系统瓶颈,影响整个系统的执行。而高并发问题不仅仅涉及面之广,同时又要求有足够的深度!!!
而多执行绪在这里只是在同/异步角度上解决高并发问题的其中的一个方法手段,是在同一时刻利用计算机闲置资源的一种方式。
多执行绪在解决高并发问题中所起到的作用就是使计算机的资源在每一时刻都能达到最大的利用率,不至于浪费计算机资源使其闲置。
以下是整理出来的资源免费分享给大家

【领取方式】
关注+转发后,私信关键词 【资料】即可获取架构资源合集以及精品技术PDF。关注头条 程式汪丶不迷路,第一时间获取最新架构资讯,资源。
最后祝福所有遇到瓶疾且不知道怎么办的Java程序员们,在往后的工作与面试中一切顺利。