组合操作,会不会形成死循环

来源:9-16 ConcurrentHashMap复习

不努力我们就老了

2020-03-29

@Override
public void run() {
    for (int i = 0; i < 1000; i++) {
        while (true) {
            Integer score = scores.get("小明");
            Integer newScore = score + 1;
            boolean b = scores.replace("小明", score, newScore);
            if (b) {
                break;
            }
        }
    }

}

如果 b一直返回false,会不会形成死循环。代码的业务逻辑是不是应该放到 if (b) {} 里面写,比如将newScore 入库的逻辑。 麻烦老师了 ???

写回答

1回答

悟空

2020-03-29

可能会造成死循环。

1
0

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程