比如一个服务器,登陆人数达到100个人,就提示当前连接数已满,这个怎么弄,用线程吗???如何控制用户退出后释放资源,我记得jms有队列模式,但不知道好不好用,今天组长就给我讲了个大概,希望各路大虾帮帮忙,如有学习的资料发给我或者给下链接,谢谢大家。油箱地址:[email protected]
ps:没分了,尴尬:)

解决方案 »

  1.   

    能不能用session的监听,设置变量最大不能超过100,登陆变量自动加一,退出时,变量自动减一。
      

  2.   

    使用 JDK 5 并发包中的同步器——信号量(java.util.concurrent.Semaphore)进行处理,可以看看它的 API 文档。
      

  3.   

    用session监听就可以了,和线程扯上干嘛,顶多判断人数的时候用个线程同步。
      

  4.   

    昨天开过会了,具体应该是这样:
    用户把数据做成excel,然后文件上传(我打算先传到服务器上),然后程序读取excel文件里面的数据,根据系统业务规则实现业务的自动化,很耗资源,所以在文件上传,在前台就要控制上传得人数,若上传人数超过限制,比如100人,则用进度条给出提示说明:当前上传人数xxx人,你排在第几位。上传结束后,给用户提示,并发确认邮件。(注:有一种情况,用户今天提交excel,业务保存成功,过了几天后,用户忘了到底有没提交,又提交一次,这个怎么解决,大家给点力:)
    ps:这个用session监听应该实现不了吧,别喷我:)
      

  5.   

    上传的时候设置一个变量,传完改变量就行了,比如int i=0,开始上传就加1,传完就减1,i等于10的时候让后面的人等待
      

  6.   

    如果是做web项目,思路是这样的,当用户进入时,使用线程同步,判断session是否大于你固定的数,否则将用户的ID存入session,你只用关心这就可以了。
    因为用户退出 或异常关闭,session会自动失效,所以可以只通过判断session的总算确定有多少人