多个CPU与多核CPU问题

来源:1-5 JAVA内存模型

Tom_Dragon

2018-11-30

老师,

这里有些概念不怎么理解:

1. 现在的计算机是一个CPU,多个物理核心,这些个核心跟存在多个CPU应该是一样吧?

2. 我们把代码部署到一台硬件上,这台硬件只有一个web容器,比如Tomcat,这个时候很多个用户请求过来,对应的底层硬件是有多条线程吗?多个用户请求是不是就是多条线程?那岂不是所有的代码都要考虑到多线程的问题? 我知道Tomcat好像是有个线程池可以管理这些,但是不知道详细的怎处理的?不知道从哪里去了解这些。

3. 比如说我代码里编写的逻辑是开启多条线程,那个这个代码在实际的环境本身是被多条线程访问的,每条线程执行到这个代码逻辑时又开启多条线程,是这样的吗?



写回答

1回答

Jimin

2018-11-30

你好,三个问题,挨个回答一下。
1、首先是多核cpu问题。多核心cpu主要分原生多核和封装多核。原生多核指的是真正意义上的多核,最早由AMD提出,每个核心之间都是完全独立的,都拥有自己的前端总线,不会造成冲突,即使在高负载状况下,每个核心都能保证自己的性能不受太大的影响,通俗的说,原生多核的抗压能力强,但是需要先进的工艺,每扩展一个核心都需要很多的研发时间。
2、tomcat问题。基本上每个请求都会有一个线程单独处理,一台服务器通常能抗住几百的并发请求,tomcat也确实有自己的线程池管理,这方面知识很多,推荐一个公众号给你,你可以从历史文章中学到不少相关的知识:tomcat0000,展示的名称是Tomcat那些事儿。实际中,确实每个请求都需要考虑并发的问题,因此所有公司的面试题里并发都占不小的比例。
3、第三个你说的是对的

0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程