基本上我有以下两个陈述:
Project project = projectDao.createProject(...);
projectDao.deleteInProgressEntry(...);
我想确保在删除inProgress条目(在执行下一行之前)之前完成项目创建。这些语句完全相互独立,所以我担心编译器可能不尊重代码中的顺序。
我已经完成了关于volatile的一些阅读,我尝试将volatile添加到第一行的开头,所以我会volatile Project project
。但那不编译。我很难找到我正在寻找的东西,而不会迷失多线程,原子操作等等。
答案 0 :(得分:6)
不,它会的。 其他线程可能无法按顺序观察操作结果 - 但从执行线程的角度来看,它肯定会按顺序执行。语句完全相互独立,所以我担心编译器可能不尊重代码中的顺序。