Tomcat与 BIO / NIO

当一个进程有500个线程在跑的话,那么性能已经很低了,Tomcat默认配置的最大请求数是150,也就是最大只能支持150的并发,当某个应用达到250个以上并发,就需要考虑集群,但是说具体能承载多少,需要看硬件设施

操作系统对进程的线程数也有一定限制: windows为一个进程2000个线程    linux为一个进程1000个线程

而且在Java中每开启一个线程,就需要耗用1MB的JVM内存空间,用以开辟线程栈信息

 

且说 Tomcat,Tomcat默认的HTTP实现是采用阻塞式的Socket通信(Tomcat7以及一下版本,Tomcat7之后采用的默认NIO,大幅度的提高服务器的处理和响应性能),每个请求都需要创建一个线程进行处理,这种模式下的并发量受到线程数量的限制,但对于Tomcat来说几乎没有BUG(但是7之后对NIO来说也是很好)

Tomcat还可以配置使用NIO的方式的Socket通信,在性能上高于阻塞式的,每个请求也不用额外创建一个新线程进行处理,并发能力能BIO强,但是在当时没有阻塞式的成熟

IO的socket通信主要的处理关键点是事件中的I/O操作,BIO可以采用线程池的方式,以多线程去解决,但是NIO的多线程实现起来较为麻烦,需要考虑很多因素,如TCP/IP协议里的包规定等,所以我们常使用Netty这一先已封装好的框架

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值