小编ins*_*n-e的帖子

Java ConcurrentHashMap动作原子性

这可能是一个重复的问题,但我在一本关于并发的书中找到了这部分代码.这据说是线程安全的:

ConcurrentHashMap<String, Integer> counts = new ...;

private void countThing(String thing) {
    while (true) {
        Integer currentCount = counts.get(thing);
        if (currentCount == null) {
            if (counts.putIfAbsent(thing, 1) == null)
                break;
        } else if (counts.replace(thing, currentCount, currentCount + 1)) {
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

从我的(并发初学者)的角度来看,线程t1和线程t2都可以读取currentCount = 1.然后两个线程都可以将地图的值更改为2.有人可以解释我代码是否正常?

java concurrency multithreading concurrenthashmap concurrent-programming

12
推荐指数
2
解决办法
323
查看次数

Sbt fork run不起作用

Sbt docs

要仅启用分叉运行任务,请在运行范围中将fork设置为true.

fork in run:= true

但是当我用sbt run(或打开sbt控制台然后运行)运行我的应用程序时,我在任务管理器中看不到另一个进程.当我设置时也是同样的情况fork := true......

test例如,当我运行任务时,情况并非如此.不应该为我的应用程序创建另一个JVM进程或者什么?我错过了什么吗?

scala sbt

5
推荐指数
0
解决办法
291
查看次数

未解决的依赖 org.scala-lang:scala3-library_3.0.0:3.0

我有一个 scala3.0.0-RC1项目,我正在尝试升级到 scala 3.0.0
我将 sbt 版本设置为1.5.2scalaVersion := "3.0.0"但出现此错误:

[warn] Note: Unresolved dependencies path:
[error] sbt.librarymanagement.ResolveException: Error downloading org.scala-lang:scala3-library_3.0.0:3.0.
Run Code Online (Sandbox Code Playgroud)

scala sbt scala-3

4
推荐指数
1
解决办法
152
查看次数