java网络编程的一个问题 现在想做一个代理的功能,接收HTTP请求,然后转发,现在是收到一个请求就起一个线程处理,虽然也用了线程池管理线程,但是如果一个用户在不停的点击功能,不停的发请求,这边的线程很快就不够用了,一般网络编程是怎么处理这种问题的,能不能之前的请求都抛弃,只响应最后一个请求? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个请求就起一个线程,是玩具的做法,真正的HTTP是TCP短连接,你又只是转发,不需要做处理,最好的做法是在单一的线程内做事情,而不是起线程,.线程不会加速你的程序的.当然了,也不是不可以起线程,你可以在每一个线程安置一个消息队列,视消息队列的盈满程度,决定是不是要使用另外一个线程. 我想,你应该制定一些规则了!,比如设置每个IP最高的同时连接数设置每个IP下个连接的延迟数,类似于Thread.sleep(); 总之,然后后面的等待,如果超过等待队列,就直接返回ERROR. 请参考tomcat的thread的配置部分。呵呵,这些都是比较成熟的配置了。 你可以把它们的请求信息放到一个映射里面它们的IP做为一个键,而请求的内容做为值因为Map是唯一的键,所以后续的请求会自动覆盖以前的请求,这样你取出来的就一定是最后的请求了 jsp分页功能 类的加载问题? 如何更改本页面的url地址啊 请问java 同步怎么控制? 在画布上写一个字母,但要将这字母右转90度,能坐到吗?! 在一个Vector中放入了一个String[],我应该怎么重新把他取出来也保存在一个String[]中?——解决立马给分 谁能给我一个获取数字音频并保存成文件的例子? 国外有哪些好的程序员论坛?请各位介绍几个 下面一段话是否有错,如果有,错在哪?请大家指导 求助关于字符串左对齐的问题 请教各位:如何单独设置JTable的某些列的宽度,以及如何设置某些单元格内容的颜色 求较一个 移位运算符 的问题~~
线程不会加速你的程序的.当然了,也不是不可以起线程,你可以在每一个线程安置一个消息队列,视消息队列的盈满程度,决定是不是要使用另外一个线程.
设置每个IP下个连接的延迟数,类似于Thread.sleep(); 总之,然后后面的等待,
如果超过等待队列,就直接返回ERROR.
它们的IP做为一个键,而请求的内容做为值
因为Map是唯一的键,所以后续的请求会自动覆盖以前的请求,这样你取出来的就一定是最后的请求了