各位前辈,小弟现在碰到这么一个java问题
我在 servelt 里面用 HashMap 存入一条消息,这条消息再通过Socket发到另一台设备上面,现在有两种情况:
1.设备有响应:我就可以通过返回的响应,解析出来key,再将HashMap把对应的消息删除掉.
2.设备没有响应:我是通过一个定时器去处理这些放在 HashMap 里面超时的消息(比如30秒).这时候因为考虑到多线程并发问题,所以这个HashMap做同步的遍历,因为没有设备没有返回,我也无法获得 key ,所以只有去遍历全部 HashMap 里的消息,再去判断是否有超时的消息在里面。
现在就有两个关键性问题: 在大容量并发的时候,如果我的定时器开始执行并且同步HashMap,将导致前面的请求堵塞,而且因为都是超时的消息,我没有办法得到 key , 只有去全部查询一边。性能大大降低
请问各位指点一下处理的办法或者思路,小弟万分感激啊!!!在线等
我在 servelt 里面用 HashMap 存入一条消息,这条消息再通过Socket发到另一台设备上面,现在有两种情况:
1.设备有响应:我就可以通过返回的响应,解析出来key,再将HashMap把对应的消息删除掉.
2.设备没有响应:我是通过一个定时器去处理这些放在 HashMap 里面超时的消息(比如30秒).这时候因为考虑到多线程并发问题,所以这个HashMap做同步的遍历,因为没有设备没有返回,我也无法获得 key ,所以只有去遍历全部 HashMap 里的消息,再去判断是否有超时的消息在里面。
现在就有两个关键性问题: 在大容量并发的时候,如果我的定时器开始执行并且同步HashMap,将导致前面的请求堵塞,而且因为都是超时的消息,我没有办法得到 key , 只有去全部查询一边。性能大大降低
请问各位指点一下处理的办法或者思路,小弟万分感激啊!!!在线等
解决方案 »
- cxf对外发布webservice时,不用localhost,用域名
- 我想问个关于hibernate的问题,求解答,hql相关的
- 请教HttpSessionListener和HttpSessionBindingListener的区别
- session.save(obj)问题
- 求Java写的邮件系统(切实可用)
- 请教一个关于线程的菜鸟级问题。
- 求助:关于spring中aop的问题
- POI复制sheet问题
- 不能从数据表中读取数据的问题
- jbuilder8(非jb7)中为什么保存不了jsp文件?苦恼!
- 【分享,有PDF供下载】企业级WebLogic实战揭秘
- 急:FileTransferClient下载文件,报ControlChannelIOException超时
public synchronized void xxx()
{
……
}
3.在map使用时加锁:lock(map){……}
而且我在处理超时消息的时候,我没有办法得到key,要整个Map遍历,这时间伤不起啊!!!!