java:监听在线人数代码
以下是一个简单的Java代码示例,用于监听在线人数:
import java.util.ArrayList;
import java.util.List;
class OnlineCounter {
private static List<String> onlineUsers = new ArrayList<>();
public static synchronized void userLogin(String username) {
onlineUsers.add(username);
System.out.println(username + " 登录成功");
System.out.println("当前在线人数:" + onlineUsers.size());
}
public static synchronized void userLogout(String username) {
onlineUsers.remove(username);
System.out.println(username + " 退出登录");
System.out.println("当前在线人数:" + onlineUsers.size());
}
}
class UserThread extends Thread {
private String username;
public UserThread(String username) {
this.username = username;
}
@Override
public void run() {
OnlineCounter.userLogin(username);
try {
Thread.sleep(5000); // 模拟用户在线状态
} catch (InterruptedException e) {
e.printStackTrace();
}
OnlineCounter.userLogout(username);
}
}
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
new UserThread("User " + i).start();
}
}
}
这个示例中,OnlineCounter类用于记录在线用户数量。其中,userLogin方法用于用户登录时调用,userLogout方法用于用户退出登录时调用。这两个方法都使用了synchronized关键字,以保证线程安全。
UserThread类继承自Thread,表示一个用户线程。在run方法中,首先调用userLogin方法模拟用户登录,然后通过Thread.sleep方法模拟用户在线状态,最后调用userLogout方法模拟用户退出登录。
在Main类的main方法中,创建了10个用户线程,并启动它们。每个用户线程都会登录、在线一段时间后退出登录。
运行该代码,可以看到输出结果中显示了当前在线人数的变化
原文地址: http://www.cveoy.top/t/topic/hJlX 著作权归作者所有。请勿转载和采集!