synchronized我对关键字的用法和意义有一些疑问。
synchronized
synchronized关键字是关于不同线程读取和写入相同变量、对象和资源的全部内容。这在 Java 中不是一个微不足道的话题,但这里引用了 Sun 的一句话:
synchronized方法启用了一种防止线程干扰和内存一致性错误的简单策略:如果一个对象对多个线程可见,则对该对象变量的所有读取或写入都通过同步方法完成。
简而言之: 当您有两个线程正在读取和写入相同的“资源”时,例如一个名为的变量foo,您需要确保这些线程以原子方式访问该变量。如果没有synchronized关键字,您的线程 1 可能看不到线程 2 对 所做的更改foo,或者更糟的是,它可能只更改了一半。这不是您在逻辑上所期望的。
foo
同样,这在 Java 中是一个重要的话题。要了解更多信息,请在此处探索关于 SO 和 Interwebs 的主题:
继续探索这些主题,直到 “Brian Goetz” 这个名字在你的大脑 中与 “并发” 一词永久相关。