关于synchronized关键字的用法和意义,我有一些问题.

  • synchronized关键字的意义是什么?
  • 什么时候应该是synchronized
  • 它在编程和逻辑上意味着什么?

推荐答案

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

synchronized种方法实现了一个简单的

In a very, very small nutshell:当您有两个线程正在读取和写入相同的"资源"时,例如名为foo的变量,您需要确保这些线程以原子方式访问该变量.如果没有关键字synchronized,您的线程1可能看不到将线程2更改为foo,或者更糟糕的是,它可能只更改了一半.这不会是您在逻辑上所期望的.

在Java中,这也是一个非常重要的话题.要了解更多信息,请浏览以下主题和互联网站:

继续探索这些话题,直到"Brian Goetz"这个名字在你的大脑中与"concurrency"这个词永久地联系在一起.

Java相关问答推荐

如何在 Java 或 Kotlin 中拆分数组?

JavaFX 无法在我的 macbook(m1 芯片组)上运行

访问 Arraylist of Objects 中的特定元素

任务':app:compileDebugJavaWithJavac'失败

将 4 个已排序的数组合并为一个

应用程序构建成功,但 IntelliJ 说我的模块没有读取其他模块

@PutMapping MockHttpServletResponse 的 JUnit RestControllerTest 正文为空

如何计算 Arraylist 中的每个唯一项?

使用 Selenium Java 根据 HTML 单元格内容选择元素

如何在 Databricks Spark Scala 中使用当前月份的第一天创建变量?

java JFileChooser如何临时禁用文件选择窗口

将每个语句放在 Eclipse 中新行的 if 子句中

ControllerAdvice @InitBinder setDisallowedFields 不起作用

带有可变参数的消费者

如何更改 GridPane 中节点的位置

Android - 中止崩溃

迷宫 2D 递归算法死胡同问题

org.apache.kafka.common.errors.SerializationException:未知的魔术字节

如何找到与同一对象关联的最大对象计数

Spark - 多次运行选择语句的问题