Java代码如何保证某个函数只被调用一次呢?

书欣 Java经验 发布时间:2023-07-01 19:28:59 阅读数:993 1
下文笔者讲述java代码限制一个函数只被调用一次的方法分享,如下所示

方式1

static boolean flag = false;

if(!flag) {
    callee();
    flag = true;
}

此种方式在高并发的场景下
   并不能保证函数只被调用一次

使用volatile限制函数只被调用一次

public static volatile initialized = false;
public void init() {
    if( initialized == false ){
        initialized = true;
        // 这里初始化代码....
    }
}

最佳保证函数只被调用一次的方法

AtomicBoolean

private static AtomicBoolean initialized = new AtomicBoolean(false);
public void init() {
   if( initialized.compareAndSet(false, true) )//如果为false,更新为true {
       // 这里放置初始化代码....
   }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202307/16882109736951.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者