gpt4 book ai didi

java - 是否存在 Java synchronized 关键字优于 Atomics 的可行用例?

转载 作者:行者123 更新时间:2023-11-30 06:23:31 25 4
gpt4 key购买 nike

我在线程方面经验不多,但我用 Atomics 编写了一个漂亮的非阻塞顺序 Id 生成器......它让我在测试中获得了非常显着的性能提升。现在我想知道为什么有人会使用 synchronized 因为它慢得多......现代 64 位多核硬件有原因吗?其他人现在问我关于原子的问题。我希望能够告诉他们永远不要使用该关键字,除非他们要部署到古老的硬件上。

最佳答案

因为您不能只使用原子来执行多个操作(好吧,从技术上讲,您可以,因为您可以使用原子来实现“锁定”,但我认为这不是重点)。您也不能使用原子进行阻塞等待(您可以进行忙等待,但这几乎总是一个坏主意)。

这是 OP 的练习:编写一个程序,使用多个线程将带时间戳的日志消息写入同一个文件,其中消息必须按时间戳顺序显示在文件中。仅使用原子来实现这一点,但无需重新发明 ReentrantLock/synchronized。

关于java - 是否存在 Java synchronized 关键字优于 Atomics 的可行用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18284734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com