高并发服务器处理:高并发服务器的构建,不建议为每一个请求(任务)单独创建一个线程...


高并发服务器处理:高并发服务器的构建,不建议为每一个请求(任务)单独创建一个线程。因为无限制创建线程会产生一系列问题。
当创建大量线程时,1 线程生命周期的开销非常高。线程的创建鱼销毁并不是没有代价的,虽然会因为平台的不同而有所区别,
但是线程的创建都会需要时间,延迟处理的请求,并且需要JVM和操作系统提供一些辅助操作。
如果请求的到达率非常高并且请求的处理过程是轻量级的,大多数服务器应用程序就是这种情况,那么为每个请求
创建一个新线程将消耗大量的计算资源。
2 活跃的线程会消耗系统资源,尤其是内存。如果可运行的线程数量多于可用处理器的数量,那么有些线程将倍闲置。大量空闲
的线程会占用许多内存,给垃圾回收器带来压力,而且大量线程在竞争CPU资源时还将产生其他的性能开销。
如果你已经拥有足够多的线程使CPU保持忙碌状态,那么再创建更多的线程反而会降低性能。
3 在可创建线程的数量上存在一个限制。
在一定范围内,增加线程可以提高系统的吞吐率,但如果超出了限制值,增加的线程只会降低程序的执行速度,并且如果过多的创建
一个线程,那么整个应用程序将崩溃。要想避免这种危险,就应该对应用系统可创建的线程数量进行限制。
并且全面的测试应用程序,从而确保在线程数量达到限制时,程序也不会耗尽资源。
为每一个任务分配一个线程这种方法的问题在于他没有限制可创建线程的数量,只限制了远程用户提交HTTP请求的速率,
。与其他的并发危险一样,在原型设计和开发阶段,无限制的创建线程或许还能较好的运行,但在应用程序部署后并处于高负载下运行时,
才会有问题不断暴露出来,从而使服务器奔溃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

annan211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值