【程序员必备小知识-基础3】javaWeb运行架构

174 阅读1分钟

引言

我们的应用程序在操作系统中是以一个进程的方式运行的,然后我们用户的请求是用线程方式处理的,以我实际的Web开发为例,线程的创建和启动是不需要手动去执行的,但我们的Web确实是多线程进行的,实际上是Tomcat帮我们干了这一切,那它和操作系统又是怎么联系的呢?我们简单聊一下它们之间的关系。

mvc经典三层

我们的用户请求来了之后,Tomcat为每一个用户请求创建一个线程,然后去找我们URL路径对应的Controller,然后Contorller调用ServiceService调用Dao,完成数据的存储和逻辑处理,返回结果给我们的客户。

javaWeb运行架构

Tomcat也是应用啊,是应用就是以进程的方式存在,那我们的Tomcat是基于JVM的环境运行的,而JVM又被操作系统当成一个进程管理,真正干活的是我们的cpu和内存,操作系统把cpu和内存的资源进行分时和分片处理,虚拟出一个环境让JVM进程运行。

我们重新梳理一下:我们的应用程序是一个个War包,交给TomcatTomcat又依赖于JVMJVM又离不开操作系统,操作系统是和硬件打交道的,我们的硬件才是最终干活的。

多线程

我们的cpu在多个线程之间进行高速切换,那会带来什么样的问题?又是如何解决的,我们下节接着聊。