期货/番石榴/ Javadoc

时间:2012-02-07 02:08:38

标签: java guava

我不想提出问题,因为我一点也不确定(如果是的话,这是一个非常小的缺陷),但这是Javadoc在Futures.transform(...)中的评论签名中的显式ExecutorService参数是否正确?

  

对于较重的转换,此选择带有一些注意事项:首先,转换运行的线程取决于输入Future是否在调用transform时完成。特别是,如果调用late,transform将在调用transform的线程中执行转换。其次,转换可以在负责输入Future的系统的内部线程中运行,例如RPC网络线程。最后,在执行sameThreadExecutor转换期间,所有其他已注册但未执行的侦听器都无法运行,即使这些侦听器要在其他执行程序中运行。

我认为它总是在一个“属于”提供的ExecutorService的线程中执行。但是在两个需要显式第三个ExecutorService实例的转换方法中都说明了,所以我认为我错了。

1 个答案:

答案 0 :(得分:4)

在它需要第三个ExecutorService实例的两种情况下,在段落中讨论了它是否应该切换到默认为sameThreadExecutor的重载。这个“这个选择”只是说服了我,当你通过它时,这是在讨论这个案例Executors.sameThreadExecutor