线程池中,客户并发访问量超过线程最大设置数怎么办?

changshawei 2010-06-17 11:23:24
在线程池中,我设置的最大线程量是10,但忽然处于某个作业高峰期,客户访问量达到100,而此时我前面十个线程都处于忙碌状态,这时候我该怎么办?
...全文
1749 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
closewbq 2010-06-18
  • 打赏
  • 举报
回复
服务器忙。。。。。
mochibing 2010-06-18
  • 打赏
  • 举报
回复
可以通过线程池+等待队列的形式来处理,比如说线程池是500,高峰期可能出现线程池已经满了但是还有用户请求不断过来,这时就要把这些请求放到等待队列里面,等待队列设定一个最大等待时间,超过最大等待时间的请求自动拒绝,当线程池有空位的时候自动通知等待队列把用户请求转发到线程池处理。

当然条件允许的话还是尽量加大线程池,实在没办法才使用等待队列的方式
changshawei 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cayu 的回复:]
当然是加大线程池了,楼主 想问什么?
[/Quote]
就是不管你加多大线程池,我同时并发的线程都有超过你设置最大线程的可能,如你设置的线程池最大线程是100,但某时刻那100个线程都处于忙碌中,此时我进来第101个用户请求,我该怎么办?
dr_lou 2010-06-18
  • 打赏
  • 举报
回复
池子弄大点吧。非高峰期也不会浪费太多的。
antony0203 2010-06-18
  • 打赏
  • 举报
回复
加线程,加缓存
dr_lou 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 changshawei 的回复:]
引用 1 楼 cayu 的回复:
当然是加大线程池了,楼主 想问什么?

就是不管你加多大线程池,我同时并发的线程都有超过你设置最大线程的可能,如你设置的线程池最大线程是100,但某时刻那100个线程都处于忙碌中,此时我进来第101个用户请求,我该怎么办?
[/Quote]

等待啊、排队。
俊哥123 2010-06-18
  • 打赏
  • 举报
回复
这个问题楼主想偏了吧,1个客户来,就占一个线程?SOCKET的?
正常应该是一个客户请求一个任务,线程处理完,还可以处理下一个客户的请求
不是说100个客户就需要100个线程 吧
jspxnet 2010-06-17
  • 打赏
  • 举报
回复
当然是加大线程池了,楼主 想问什么?

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧