我有我需要处理(500Meg + zip文件)相当大的文件。
是否有任何非阻塞IO开源实现对Scala的演员?
我有我需要处理(500Meg + zip文件)相当大的文件。
是否有任何非阻塞IO开源实现对Scala的演员?
如果我收到了你的问题的权利,你需要非阻塞IO的文件。 我有坏消息要告诉你呢。
的Java NIO中的Java6处理文件时,只支持阻塞操作。 你可以从这样的事实注意到这个FileChannel
没有实现SelectableChannel
接口。 (NIO确实然而支持套接字非阻塞模式)
有NIO.2( JSR-203 )规范的目的是克服java.io和NIO的许多电流限制,并就文件提供了异步IO的支持。 NIO.2要使用Java 7据我所知释放。
这些是Java库的限制,因此你会从他们在斯卡拉同样蒙受损失。
演员都是基于的fork-join Doug Lea的框架(至少在分支2.7.x至2.7.7版本 )。 从一个报价FJTask类 :
没有什么实际阻止您从FJTask内阻塞,和很短的等待/块完全表现良好。 但FJTasks没有被设计成支持任意同步,因为没有办法暂停和恢复单个任务,一旦他们开始执行。 FJTasks也应该在持续时间有限 - 他们不应该包含无限循环。 这可能需要永远执行阻击战,或持有锁时间过长,或环FJTasks可以代替创建普通Java线程对象,这将这样做。 FJTasks只是不能承受这些事情。
FJ库在斯卡拉增强,可提供允许一个演员的功能就像一个线程或类似取决于工作线程的数量和“库活动”基于事件的任务(您可以在技术报告中找到解释“以统一的方式演员是统一主题与活动 “,由菲利普·哈勒和马丁·奥德斯基)。
但是,如果所有在运行在它的行为就好像,如果它是一个线程演员阻塞代码,那么为什么不使用普通的Thread
,用于阻止读取,并从该线程将事件发送到基于事件的参与者?
你说的是远程的演员? 一个标准的Actor
当然是一个帧内JVM实体。 我不知道一个NIO的实现恐怕远程行动者。
你好是你的选择? bigdata(R)是一个向外扩展的存储和计算织物支撑可选的交易,非常高的并发性和非常高的聚合IO速率。
http://sourceforge.net/projects/bigdata/
不,我知道的,但你可能会得到很多里程出来的看着Naggati ,斯卡拉包装器的Apache米娜。 米娜是使用NIO一个网络图书馆,Naggati转换成编码的斯卡拉风格这一点。