tomcat是如何对处理并发请求的,如果高并发请求同一个方法会造成线程安全吗?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

tomcat是如何对处理并发请求的,如果高并发请求同一个方法会造成线程安全吗?

小旋风柴进 2016-03-04 10:35:34 5105

tomcat是如何对处理并发请求的,是对每个访问都创建一个线程然后当一个线程进入到方法中,其他线程阻塞?

安全 应用服务中间件
分享到
取消 提交回答
全部回答(2)
  • 文殊人
    2019-07-17 18:51:55
    2 0
  • 小旋风柴进
    2019-07-17 18:51:55

    这当然是不可能的,否则不可能应付数以千计的并行请求。

    Tomcat 7 的 Connector 分为两种模式,NIO (非阻塞)和 BIO (阻塞)。其中 NIO 用固定数目线程接受全部连接请求,Web 应用程序用 Java NIO API 来处理。BIO 则对每个请求在一个单独的线程池上获取线程来处理。

    NIO 本身占用线程较少,代价是应用开发者需要用 Buffer 处理。应用开发者需要管理 Buffer 和保护它们。提供的并行性能力较强。

    BIO 提供阻塞流,应用开发比较容易。每个请求在单独线程中,应用开发者需要保护自己的共用数据结构(一般用 Lock 或 Synchronize)。它提供的并行性能力较弱。

    0 0
添加回答
+ 订阅

云安全开发者的大本营

推荐文章
相似问题