java 怎样统计系统当前在线人数

Python019

java 怎样统计系统当前在线人数,第1张

统计在线人数的方式不同(比如登录人数或者页面访问人数)具体的实现方式不同,但是记录统计人数的方法是一样的1。定义一个静态变量或者在application作用于放置一个变量存放在线人数,如果是登录人数,则在用户登录时+1,如果是页面访问人数就添加一个监听器listener进行监听(sessionId) 如果有用户访问页面就+1

锁加单例:

public class Regist{private static Regist rgst=new Regist() private Regist(){}private int cnt=0 private int max=100 public static getRegist(){return rgst}///设置最大上线人数public void setMax(int max){this.max=max}///判断新用户能否登入public synchronized boolean login(){ if(cnt>=max)return false ++cnt return true }///用户退出时调用public synchronized void logout(){--cnt }}

有新用户要登入时,先Regist::getRegist().login()判断能否登入,返回true则表示没到用户上限,可以登入,否则表示到上限了,不能登入,用户退出时需要调用Regist::getRegist().logout()

synchronized不清楚可以百度,是种类似锁的东西。作用于方法上,相当于调用方法前先lock,调用之后unlock,其锁的对象是该方法的类对象。

线程不是太多可以用这个方法,线程太多用这个可能慢了些,好像加锁比较耗时间,如果同一个时间太多人进行登入操作,都得在那等着,一个一个进行,反应慢