2013-03-25 45 views

回答

4

这是一个阻塞操作。

Future包装纸不会使文件异步操作,但它Future执行服务/线程池阻碍线程...

附录

所有JVM中的执行发生在线程上。当使用Future时,封装计算发生的线程与启动Future的线程不同。当您使用旧的java.io时,操作被阻止,无论您是直接呼叫它们还是将它们交给Future

如果意图创建高并发系统,则根本不会执行阻塞操作。使用Future和actors可以实现高并发性,而不会产生线程每个I/O操作的高开销,但前提是只有I/O操作本身是非阻塞的

+0

Randall是对的。我们有一个课程将这个事实抽象出来,所以我忘记了这一点。我删除了我的答案,因为它不正确。在未来简单包装不会使其异步,你需要特殊的逻辑。 – coltfred 2013-03-25 16:29:03

+0

感谢您的快速回答,我不清楚它是什么意思,“但它会绑定来自Future执行者服务/线程池的线程......”你能解释一下吗? – user776635 2013-03-25 16:41:52

+0

也,这是行不通的,在scala中做异步文件io操作的正确方法是什么? – user776635 2013-03-25 16:45:45