防止java中的乱序执行

jla*_*s62 2 java volatile execution

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

Project project = projectDao.createProject(...);
projectDao.deleteInProgressEntry(...);
Run Code Online (Sandbox Code Playgroud)

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

我已经完成了关于volatile的一些阅读,我尝试将volatile添加到第一行的开头,所以我会这样做volatile Project project.但那不编译.我很难找到我正在寻找的东西而不会迷失在多线程,原子操作等方面.

Jon*_*eet 6

这些语句完全相互独立,所以我担心编译器可能不尊重代码中的顺序.

不,它会的.这有可能是其他线程可以观察出的顺序操作的结果-但是从执行的线程的角度看,它肯定会顺序执行.