多个CPU与多核CPU问题
来源:1-5 JAVA内存模型
![](http://img1.sycdn.imooc.com/images/unknow-100.png)
Tom_Dragon
2018-11-30
老师,
这里有些概念不怎么理解:
1. 现在的计算机是一个CPU,多个物理核心,这些个核心跟存在多个CPU应该是一样吧?
2. 我们把代码部署到一台硬件上,这台硬件只有一个web容器,比如Tomcat,这个时候很多个用户请求过来,对应的底层硬件是有多条线程吗?多个用户请求是不是就是多条线程?那岂不是所有的代码都要考虑到多线程的问题? 我知道Tomcat好像是有个线程池可以管理这些,但是不知道详细的怎处理的?不知道从哪里去了解这些。
3. 比如说我代码里编写的逻辑是开启多条线程,那个这个代码在实际的环境本身是被多条线程访问的,每条线程执行到这个代码逻辑时又开启多条线程,是这样的吗?
写回答
1回答
-
你好,三个问题,挨个回答一下。
1、首先是多核cpu问题。多核心cpu主要分原生多核和封装多核。原生多核指的是真正意义上的多核,最早由AMD提出,每个核心之间都是完全独立的,都拥有自己的前端总线,不会造成冲突,即使在高负载状况下,每个核心都能保证自己的性能不受太大的影响,通俗的说,原生多核的抗压能力强,但是需要先进的工艺,每扩展一个核心都需要很多的研发时间。
2、tomcat问题。基本上每个请求都会有一个线程单独处理,一台服务器通常能抗住几百的并发请求,tomcat也确实有自己的线程池管理,这方面知识很多,推荐一个公众号给你,你可以从历史文章中学到不少相关的知识:tomcat0000,展示的名称是Tomcat那些事儿。实际中,确实每个请求都需要考虑并发的问题,因此所有公司的面试题里并发都占不小的比例。
3、第三个你说的是对的00
相似问题