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;
        }
```

有并发问题吗？

private Invocation invocation;
        private CountDownLatch startLatch;
        private CountDownLatch stopLatch;
        private int count;
        public Task(DefaultTPSLimiter defaultTPSLimiter, URL url, Invocation invocation, CountDownLatch startLatch, CountDownLatch stopLatch) {
            this.defaultTPSLimiter = defaultTPSLimiter;
            this.url = url;
            this.invocation = invocation;
            this.startLatch = startLatch;
            this.stopLatch = stopLatch;
            new Thread(this).start();
        }
        @Override
        public void run() {
            try {
                startLatch.await();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            for (int j = 0; j < 10000; j++) {
                count = defaultTPSLimiter.isAllowable(url, invocation) ? count + 1 : count;
            }
            stopLatch.countDown();
        }
        public int getCount() {
            return count;
        }
    }
}