java - Akka future 指导

标签 java multithreading akka

我正在尝试使用 Akka Futures 读取多个文件并将每一行传递给可调用对象。 我的可调用对象是特定文件的解析器。所以 people.txt 可能会填充 Person 类型的对象。 每行可以包含超过 50 个字段,每个字段都需要验证和操作来填充对象。

所以我想得到类似的东西 Future <Iterable<Person>>返回,但不确定我是如何从中得到的

BufferedReader reader = new BufferedReader(
    new InputStreamReader(getInputStream(), "UTF-16"));

while((line = reader.readLine()) != null) {
    // call callable here for each line
    // PersonParser that implements Callable<Person>
}
reader.close();

我如何构造它以在我 future 的对象中得到它。欢迎任何建议。

谢谢!

最佳答案

使用 Futures.sequence 创建 Future<Iterable<Person>> 的方法来自Iterable<Future<Person>> :

List<Future<Person>> personFutures = new ArrayList<Future<Person>>();
BufferedReader reader = 
    new BufferedReader(new InputStreamReader(getInputStream(), "UTF-16"));

while((line = reader.readLine()) != null) {
   PersonParser parser = new PersonParser(line);
   personFutures.add(Futures.future(parser, system.dispatcher()));
}
reader.close();

Future<Iterable<Person>> personsFuture = 
    Futures.sequence(personFutures, system.dispatcher()); 

关于java - Akka future 指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16245875/

相关文章:

JAVA - Selenium WebDriver - 断言和等待

java - 如何显示按钮并在用户按下按钮时显示随机数?

java - 类成员的最小值和最大值

c - 多线程程序执行字数统计-段错误

kubernetes - 如何确定akka集群是否在kubernetes上运行?

java - 跨所有方法的单一连接

java - Netbeans 反复下载 Javadoc

c# - 在 C# 中监视变量

java-akka : sending back message to grandparent

java - 如何清空Actor死信队列