求!java的线程sleep问题(100分) [问题点数:100分]

J2EE 码拜 8年前 (2017-05-01) 1397次浏览
在用websocket做一个小功能。现在碰到一个问题,在用户退出和刷新的时候。本人做了个判断。
//关闭
执行方法afterConnectionClosed  时。本人用了 Thread.sleep(2000); 这样子。
不知道能否有什么线程问题。现在有以下疑问。
假如1000个人同时访问这个方法,那每个人都sleep(2000)  。这样子会不会有线程阻塞问题。或是导致开了好多个线程,和内存爆满的问题?
原因是本人要sleep 2秒后,判断他能否在一个map里面。假如在map里面就是刷新,不存在就是关闭浏览器。
还是有其他更好的方法?
在执行sleep时,会执行建立连接操作。所以sleep完之后,本人判断一个map里面有没有那个加入的值。假如有的话就是刷新,没有就是关闭。第一次在这里问问题。求指导决
解决方案

30

同时1000个连接会同时产生1000个线程,然后同时睡2秒,再然后1000个线程同时设为就绪态等待运行。这睡的过程中需要其他醒着的线程完成其他操作,原因是这1000个线程都睡着了。内存方面,就是一个线程的1000倍。

20

换NIO框架来实现,如netty

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求!java的线程sleep问题(100分) [问题点数:100分]
喜欢 (0)
[1034331897@qq.com]
分享 (0)