假设我们有一个队列
BlockingQueue<String> queue= new LinkedBlockingQueue<>();
Run Code Online (Sandbox Code Playgroud)
而其他一些线程将值放入其中,然后我们就像读取它一样
while (true) {
String next = queue.take();
System.out.println("next message:" + next);
}
Run Code Online (Sandbox Code Playgroud)
如何以流样式迭代此队列,同时保持与上述代码类似的语义.
此代码仅遍历当前队列状态:
queue.stream().forEach(e -> System.out.println(e));
Run Code Online (Sandbox Code Playgroud) 可以说我有大量的网络服务器日志文件,不适合内存.我需要将此文件传输到mapreduce方法并保存到数据库.我这样做是使用Java 8 stream api.例如,我在mapreduce进程之后得到一个列表,例如,客户端消费,ip消费,内容消费.但是,我的需求并不像我的例子中那样.由于我不能共享代码,我只想给出基本的例子.
通过Java 8 Stream Api,我想要一次读取文件,同时获取3个列表,而我是流式文件,并行或顺序.但并行会很好.有没有办法做到这一点?