并发情况处理-面试

对于三种常见的并发情况的简单分析:
1.高并发低耗时
2.低并发高耗时
3.高并发高耗时

先说高并发低耗时,由于线程运行时间很短,为了能够大量的支持并发可以使用newCachedThreadPool这种线程池。高并发的情况如果没有大量线程支撑的话,必定需要一个很大的阻塞队列来缓存任务,这样就导致任务有较长延时。当然也有人会说线程很多的话也会导致系统开销很大,的确是这样,所以这种时候就要做负载均衡将并发量拆解分散到各个节点。
对于低并发高耗时,在http://ifeve.com/里面有个面试的回答分析的很好。高耗时是要看是CPU耗时还是IO耗时,如果是CPU耗时线程数通常解决不了太多的问题,因为cpu的负载本身都已经饱和,再添加线程对整体耗时作用不大(考虑到线程调度等因素)。如果是io耗时,由于io是会阻塞线程(类似于sleep方式使得线程进入等待状态),所以线程数可以稍微多一些,让cpu能够负载能够尽量高一些。这种情况通常使用fixedthreadpool,主要是需要设置一个合理的线程数量。
第三种情况,应该需要用到异步处理,通过任务队列将任务缓存起来,然后异步的执行这些任务,但是还是需要增加节点来处理这些任务,不然只是解决了客户端避免由于同步调用响应慢的问题,任务的完成时间还是没得到改善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值