我对 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/1085709/