java - 防止java乱序执行

标签 java execution volatile

基本上我有以下两个陈述:

Project project = projectDao.createProject(...);
projectDao.deleteInProgressEntry(...);

我想确保项目创建在 inProgress 条目被删除之前完成(在执行下一行之前)。这些语句彼此完全独立,所以我担心编译器可能不遵守代码中的顺序。

我阅读了一些有关 volatile 的资料,并尝试将 volatile 添加到第一行的开头,这样我就有了 volatile Project project。但这不编译。在不迷失在多线程、原子操作等中的情况下,我很难找到我正在寻找的东西。

最佳答案

The statements are completely independent of each other, so I am worried that the compiler may not respect the ordering in the code.

不,它会。 其他线程可能观察到操作的结果是乱序的 - 但从执行线程的角度来看,它肯定会按顺序执行。

关于java - 防止java乱序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19848513/

相关文章:

java - 尝试将一个方法从一个类引用到另一个类 = NullPointerException

java - 尝试查询 MongoDB 数据时出现问题

java - 使用 Android 拍摄单色照片(黑白)

c++ - kdevelop 没有指定有效的可执行文件

c# - 为什么 volatile 变量通常是私有(private)的?

java - 包含 Google Cloud Client 库后在 Android Studio 中构建错误

php - 防止PHP超时

php - 在我的服务器中打开 zlib.output_compression 有什么注意事项吗?

c - 包装函数的内联汇编器由于某种原因不起作用

java - java中是否需要添加 volatile 关键字来保证单例类的线程安全?