Environment
Dubbo version: master
Step to reproduce this issue

```java
public boolean isAllowable() {
        long now = System.currentTimeMillis();
        if (now > lastResetTime + interval) {
            token.set(rate);
            lastResetTime = now;
        }

        int value = token.get();
        boolean flag = false;
        while (value > 0 && !flag) {
            flag = token.compareAndSet(value, value - 1);
            value = token.get();
        }

        return flag;
    }
```

Expected Result
lastResetTime 共享变量是否有内存可见性问题

```java
 if (now > lastResetTime + interval) {
            token.set(rate);
            lastResetTime = now;
        }
```

有并发问题吗？

token.set(rate);
            lastResetTime = now;
        }
        if (token.decrementAndGet() < 0) {
            return false;
        }
        return true;
    }
    public long getInterval() {
        return interval;
    }
    public int getRate() {
        return rate;
    }
    long getLastResetTime() {
        return lastResetTime;
    }
    int getToken() {
        return token.get();
    }
    @Override
    public String toString() {
        return new StringBuilder(32).append("StatItem ")
                .append("[name=").append(name).append(", ")
                .append("rate = ").append(rate).append(", ")
                .append("interval = ").append(interval).append(']')
                .toString();
    }
}