从比例上讲,可以说几乎没有程序员充分了解同步和并发性。谁知道现在有多少服务器应用程序在管理财务交易,医疗记录,警察记录,电话等,这些同步器中充满了同步错误,本质上是偶然发生的,或者偶而会失败(从来没有听说过有人幻像)电话费已添加到他们的电话帐单中?)的原因从来没有真正被调查过或深入了解过。
对象发布是一个特别的问题,因为它经常被忽略,在这里,编译器进行优化是很合理的,如果您不了解它,可能会导致意外行为:在JIT编译的代码中,存储指针,然后增加它并存储数据是一件非常合理的事情。您可能会认为这是“邪恶的”,但是从低层次看,这确实是您期望JVM规范的方式。(顺便说一句,我听说过在JRockit中运行的现实程序会遇到此问题-这不完全是理论上的。)
如果您知道您的应用程序存在同步错误,但是在当前硬件上的当前JVM中没有出现异常,那么(a)表示祝贺;(b),现在是时候开始“从容地走向火出口”,修复代码并在需要升级太多组件之前对程序员进行教育。



