js怎么处理高并发

JavaScript04

js怎么处理高并发,第1张

JS不同于Java, C#等语言.

使用Java编写的应用, 可以编程开启多线程处理高并发业务场景.

而JS处理高并发场景使用的是 : 队列机制, 事件机制

因为JS在网页中运行时单线程模式, 在服务端nodejs中运行是单进程模式, 都无法像JAVA那样开启多个线程或者协程来处理高并发任务.

但是这不意味着JS无法处理高并发任务, 单进程的程序在使用队列机制(就是待处理任务一个个排队)处理高并发场景也仍然是非常高效的, 而且避免了开启多个线程的内存消耗.但是其缺点也是很明显的 : 不适合处理单个任务计算非常复杂消耗时间的场景.

举个栗子 :

想象一下生活中排队的场景, 如果前面有一个人磨磨唧唧, 半天赖在窗口各种问问题, 后面的人都要排队等着, 很着急.

而如果开启多个窗口(多线程/进程), 那些难缠的人分到一个窗口, 速度快的人分到一个窗口, 效率就大大提升了.

js就没并发的概念,换句话说没有多线程。

你觉得是并发执行的吗?

js的并发只有三种情况,还只能是想想成并发,运行环境也可以用队列+单线程实现,未必是并发:

ajax

timeout

interval