Java 8 ParallelStream 内部 Web 应用程序容器

标签 java multithreading

这是一个比代码问题更普遍的知识类型问题。

我可以使用以下代码来创建并行流:

// 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/

相关文章:

java - 如何在后台线程中运行无限循环并重新启动它

java - 如何使用 Java 和两个嵌套 for 循环计算扑克中的对数

java - "Bean type int could not be found"错误,如何解决?

java - 线程只运行一次

java - 在 Java 中将 WireMock 与 SOAP Web 服务结合使用

java - 多线程上传多个文件时面临空指针

c - 多线程,不能让另一个线程工作

c# - 基于 TPL 的循环服务 : right worker method signature, 异步

java - 为什么在 onCreate() 中创建一个新的 Thread 来做 I/O 仍然会出错?

java - 从子线程获取http session ?