以下是一个简单的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个用户线程,并启动它们。每个用户线程都会登录、在线一段时间后退出登录。

运行该代码,可以看到输出结果中显示了当前在线人数的变化

java:监听在线人数代码

原文地址: http://www.cveoy.top/t/topic/hJlX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录