gpt4 book ai didi

java - 'synchronized'是什么意思?

转载 作者:行者123 更新时间:2023-12-01 18:00:27 24 4
gpt4 key购买 nike

我对 synchronized 关键字的用法和意义有一些疑问。

  • synchronized 关键字有何意义?
  • 什么时候应该同步方法?
  • 这在编程和逻辑上意味着什么?

最佳答案

synchronized 关键字是关于不同的线程读取和写入相同的变量、对象和资源。这在 Java 中不是一个简单的话题,但这里引用了 Sun 的一句话:

synchronized methods enable a simple strategy for preventing thread interference and memory consistency errors: if an object is visible to more than one thread, all reads or writes to that object's variables are done through synchronized methods.

简而言之:当您有两个线程正在读取和写入同一“资源”时,例如名为 foo 的变量,您需要确保这些线程以原子方式访问变量。如果没有 synchronized 关键字,线程 1 可能看不到线程 2 对 foo 所做的更改,或者更糟的是,它可能只更改了一半。这不是您逻辑上所期望的。

同样,这在 Java 中是一个不平凡的主题。要了解更多信息,请探索 SO 和 Interwebs 上的主题:

继续探索这些主题,直到“Brian Goetz”这个名字在您的大脑中与术语“并发”永久关联起来。

关于java - 'synchronized'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60644760/

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