java网络编程的一个问题 现在想做一个代理的功能,接收HTTP请求,然后转发,现在是收到一个请求就起一个线程处理,虽然也用了线程池管理线程,但是如果一个用户在不停的点击功能,不停的发请求,这边的线程很快就不够用了,一般网络编程是怎么处理这种问题的,能不能之前的请求都抛弃,只响应最后一个请求? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个请求就起一个线程,是玩具的做法,真正的HTTP是TCP短连接,你又只是转发,不需要做处理,最好的做法是在单一的线程内做事情,而不是起线程,.线程不会加速你的程序的.当然了,也不是不可以起线程,你可以在每一个线程安置一个消息队列,视消息队列的盈满程度,决定是不是要使用另外一个线程. 我想,你应该制定一些规则了!,比如设置每个IP最高的同时连接数设置每个IP下个连接的延迟数,类似于Thread.sleep(); 总之,然后后面的等待,如果超过等待队列,就直接返回ERROR. 请参考tomcat的thread的配置部分。呵呵,这些都是比较成熟的配置了。 你可以把它们的请求信息放到一个映射里面它们的IP做为一个键,而请求的内容做为值因为Map是唯一的键,所以后续的请求会自动覆盖以前的请求,这样你取出来的就一定是最后的请求了 java字符串编码的问题,如何转码才能正确显示中文?代码很短,高手来看看 java中while try catch的使用问题……? 小牛的疑惑 java 线程并发问题提问,向各位高手专家请教 算法问题,求代码 请高手帮帮我解释一下这些报文的格式! 包的访问 100分求学“流”!流好难理解啊。谁能来讲解讲解吗? 如何在File file=new File(String fileName)中的文件名用类所在的目录下的相对文件名? 求大神看看为什么这段代码通不过华为OJ系统的测试 请教各位:如何单独设置JTable的某些列的宽度,以及如何设置某些单元格内容的颜色 求较一个 移位运算符 的问题~~
线程不会加速你的程序的.当然了,也不是不可以起线程,你可以在每一个线程安置一个消息队列,视消息队列的盈满程度,决定是不是要使用另外一个线程.
设置每个IP下个连接的延迟数,类似于Thread.sleep(); 总之,然后后面的等待,
如果超过等待队列,就直接返回ERROR.
它们的IP做为一个键,而请求的内容做为值
因为Map是唯一的键,所以后续的请求会自动覆盖以前的请求,这样你取出来的就一定是最后的请求了