关于线程和并发的疑惑?

这几天一直在学线程的知识。
但是我不理解线程是在什么时候产生的,是客户端请求一个服务端,此时服务端就会为这个客户端创建一个线程吗。

我的理解是这样的:

比如,张三李四两个人在各自的电脑访问一个web站点,此时服务器端就会为他们各自创建一个线程吗。这样服务器端是不是就有两个线程了(不考虑其它的情况下)。如果在某个时刻有很多人都在访问web站点,此时服务端是不是就会生成更多的线程呢?

然后根据线程执行的原理:需要获取到CPU的执行权才有资格执行程序这个特性,造成大量的线程高速的交替执行程序;最后出现了所谓的并发的情况吗?

不知道我这样理解对不对?

阅读 1.6k
1 个回答
  1. 我觉得看servlet容器(如Tomcat)的实现和配置,tomcat是配置线程池,有最小线程维持数和最大线程数的设置。
  2. 过程:比如,我设置最小线程维持数:5,最大线程数:50,那么刚启动时,会初始化5个线程,接收到访问时,会从池子里面取一个线程来处理请求,如果访问数超过5个了,tomcat会创建更多的线程来处理请求,但最多不超过50个。
  3. 创建时机,有可能是第6个请求来了,就创建更多线程,也可能是现有的请求数超过多少占比时,就创建更多线程。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题