Java 方法一秒钟调用一次限制实现
可以使用'synchronized'关键字和'sleep'方法来实现一个方法一秒钟只能被调用一次的效果。
示例代码如下:
public class Example {
private static long lastCallTime = 0;
public synchronized static void doSomething() {
long currentTime = System.currentTimeMillis();
long elapsedTime = currentTime - lastCallTime;
if (elapsedTime < 1000) {
try {
Thread.sleep(1000 - elapsedTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 执行方法的操作
System.out.println('Method called!');
lastCallTime = System.currentTimeMillis();
}
public static void main(String[] args) {
// 测试方法调用
for (int i = 0; i < 10; i++) {
doSomething();
}
}
}
在上述代码中,我们使用一个静态变量'lastCallTime'来记录上次方法调用的时间。在方法中,我们首先获取当前时间'currentTime',并计算与上次调用时间'lastCallTime'的时间间隔'elapsedTime'。如果间隔小于1秒(1000毫秒),则使用'Thread.sleep()'方法休眠剩余时间,以保证一秒钟只能调用一次方法。
在'main'方法中,我们测试了连续调用'doSomething()'方法10次,可以看到每次调用之间都有1秒钟的间隔。
原文地址: https://www.cveoy.top/t/topic/pS7F 著作权归作者所有。请勿转载和采集!