发生在Executor.submit()的保证之前

时间:2016-01-09 22:55:21

标签: java java-memory-model happens-before

Javadoc of Executor interface说以下内容:

  

内存一致性效果:在将Runnable对象提交到Executor之前,线程中的操作发生在执行开始之前,可能是在另一个线程中。

Java语言规范的哪一部分保证了这一点?或者只是因为实现使用了一些内部同步? (如果是这样的话,一个例子会很棒。)因此,在实现自定义Executor时,我是否应该了解这一要求?

1 个答案:

答案 0 :(得分:3)

JLS未指定API。它指定了语言。 javadoc是API规范。

因此,如果你要实现Executor,你最好遵守Executor接口的规范。执行者必须注意提交执行任务之前发生。这本身并不会发生。需要同步(等待/通知,易失性写/读等)。