当提起到这三个名词的时候,不少人认为分布式=高并发=多线程。前端
当面试官问到高并发系统采起哪些手段来解决,或者被问到分布式系统数据一致性的问题?面试
这三者相伴而生的,但侧重点不同。数据库
分布式更多的是一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。编程
在不一样的层面上,包括了分布式文件系统、分布式缓存、分布式数据库、分布式计算等等,名词:Hadoop、Zookeeper、MQ等都跟分布式有关。缓存
从理念上讲,分布式的实现有两种:安全
相对于分布式来说,高并发在解决的问题上会集中一些,其反应的同时有多少许:好比在线直播服务,同时有上万人观看。服务器
高并发能够经过分布式技术去解决,将并发流量分布到不一样的物理机器上。多线程
但除此以外还有不少其余优化手段:好比使用缓存系统,将全部的,静态内容放到CDN等;还可使用使用多线程技术将一台服务器的服务能力最大化。并发
多线程是指从软件或者硬件上实现多个线程并发执行的技术,更多的是解决CPU调度多个进程的问题,从而看上去是同时执行(实际是交替运行的)。编程语言
多线程解决的问题是最明确的,手段也比较单一,基本上遇到的问题就是线程安全。
在基于理解JVM内存模型、指令重排等,才能写出一份高质量的多线程代码。