V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Georgedoe  ›  全部回复第 3 页 / 共 3 页
回复总数  46
1  2  3  
2022-06-06 13:57:00 +08:00
回复了 Womxnly 创建的主题 Linux 求助: m1 芯片的 macbook,该怎么配置 Linux 开发环境?
docker for mac ,qemu 模拟 x86 , 拉个 ubuntu 镜像就行了
2022-05-26 14:19:25 +08:00
回复了 saki22oimo 创建的主题 硬件 鼠标垫的腕托推荐
毛巾 , 叠到合适自己的高度
2022-05-20 16:50:23 +08:00
回复了 agzou 创建的主题 Java 请教一个 ConcurrentHashMap 问题
在你代码里加了点 log , 这是输出 , 很显然有问题

public long nextId(String key) {
// 虽然采用了并发安全的容器,但是当 contains 语句通过后,有可能出现多线程先后 put,AtomicLong 值有可能给覆盖?
if (!map.containsKey(key)) {
AtomicLong atomicLong = new AtomicLong(0);
System.out.println("put twice");
map.put(key, atomicLong);
long l = atomicLong.incrementAndGet();
System.out.println(l);
return l;
}
return map.get(key).incrementAndGet();
}


put twice
put twice
put twice
1
1
2
2022-05-20 16:40:49 +08:00
回复了 agzou 创建的主题 Java 请教一个 ConcurrentHashMap 问题
同一个 key 有可能会被 put 多次 , 某个 key 的 contains 和 put 不是原子操作 , 可以去看看 go 的 singleflight 的实现 , 保证一次只有一个线程执行了 set (put) 操作
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3336 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 11:56 · PVG 19:56 · LAX 03:56 · JFK 06:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.