这是一个比代码问题更普遍的知识类型问题。
我可以使用以下代码来创建并行流:
// create List, assign to variable myList
Stream<String> stream = myList.parallelStream();
但是,在 Web 应用程序的世界中,大多数指南都说让容器(JBoss、Weblogic 等)为您管理线程和线程池。所以这引出了我的问题:在 Web 应用程序中使用 parallelStream()
是否被认为是不好的做法?
杰森
最佳答案
我认为答案取决于:首先,您在谈论不同的抽象级别。如果在代码中创建自己的线程是另一回事;并让它做点什么;或者知道您的容器正在提供线程池和此类概念。
如果您的 Web 应用程序容器程序在 Java8 出现之前使用显式线程/并行机制(例如使用 Java 的 Thread 或 ExecutorService 类进行本地工作)...那么您当然可以继续前进并更改该代码以使用并行流。你不会做比以前更多的事情;只是使用某种改进的抽象层。
另一方面:如果您确实以容器基础架构负责所有“线程”方面的方式编写程序;那么你可能会保持这种模式。
关于Java 8 ParallelStream 内部 Web 应用程序容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465545/