gpt4 book ai didi

java - 如何获得 Activity 连接数?

转载 作者:行者123 更新时间:2023-12-04 18:08:56 24 4
gpt4 key购买 nike

您的服务器获得大量 Activity 连接是真的吗?我写了一个简单的http服务器,我需要知道他有多少 Activity 连接。

我试过了,但是在 10000 次请求后它给了我错误的结果

@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
super.channelInactive(ctx);
StatusData.decreaseConnectionCounter();
}
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
super.channelActive(ctx);
log.info("Channel " + ctx.channel() + " is now active");
StatusData.increaseConnectionCounter();
}

我更改了我的类,使其看起来像这个 StatusData,当我在 100 个线程中生成 10000 个请求时,它计数正确。

class StatusData{

private AtomicInteger counter = new AtomicInteger();

public void increaseConnectionCounter() {
synchronized (counter){
int newValue = counter.intValue() + 1;
counter.set(newValue);
}
}

public void decreaseConnectionCounter() {
synchronized (counter){
int newValue = counter.intValue() - 1;
counter.set(newValue);
}
}

public int getActiveConnectionCounter() {
return counter.get();
}
}

最佳答案

您的解决方案看起来是正确的。这很可能是 StatusData 中的一个错误,比如没有使用 AtomicLong。

关于java - 如何获得 Activity 连接数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com