高并发和多线程有什么关系吗?访问量一多是不是必须要有多线程来实现?
高并发不是JAVA的专有的东西,是语言无关的广义的,为提供更好互联网服务而提出的概念。
举个极端的例子,就是100个人,1人分配1台web服务器,
那么服务器资源是他们独占的,他们不需要抢占服务器资源,100个请求被100台服务器并行处理,速度必定很快,这就是高并发。
当然这是不可能的,但是,我们总是努力去做,让少量的服务器也能达到近似的能力。
这就需要服务器的HTML画面,后台业务逻辑,db数据存取等等细节上的处理都达到一个并行的极致,
以此来实现整个服务器对所有请求的高并行。这是战略上的并行。
多线程只是为了达到高并发目的,在某个细节点上,为实现某并发功能而采用的一种具体的实现方法,这种功能也可以由多进程实现,
当然,也可以由多进程,多线程一起实现。这是战术上的并行。
那么可以说,高并发是目的,多线程是某种手段(不是唯一的),高并发可以由多线程实现,但是多线程不代表就是高并发。
高并发就是同时处理很多请求。除了用多线程,还有多进程,甚至多计算机。
高并发的主要原理就是多线程,好比如说一百个人同时访问淘宝网。
那么淘宝网的服务器便会为这一百个人分别开一条线程为提供服务
高并发就是可以同时处理多个。逻辑流上的同时处理。多线程就是cpu逻辑上的同时处理。对于多核CPU,可以多线程真正意义的并行
高并发就是:举个例子,有100个人,也有100个门店,门店里有这100个人所需的物品,能同时为100个人服务,这就是所谓的高并发,
(开玩笑的滑稽)
高并发:多个人抢着做 多线程:多个人一起做