java - 如果我在多线程服务器程序中运行并行代码会发生什么?

标签 java multithreading concurrency parallel-processing

我大致了解了并行计算和并发计算之间的区别。如果我错了,请纠正我。

并行计算

A system is said to be parallel if it can support two or more actions executing simultaneous. In parallel programming, efficiency is the major concern.

并发计算

A system is said to be concurrent if it can support two or more actions in progress at the same time. Though, multiple actions are not necessarily to be executed simultaneously in concurrent programming. In concurrent programming, modularity, responsiveness and maintainability are important

我想知道如果我在多线程程序中执行并行编程代码会发生什么?在多线程服务器程序中使用Java的并行Stream。

该程序实际上会更高效吗?

我最初的想法是,这可能不是一个好主意,因为经过某种方式优化的多线程程序应该已经占用了线程。这里的并行性可能会带来额外的开销。

最佳答案

并发和并行之间的关键区别在于,并发是指同时处理很多事情(给人同时性的错觉)或处理并发事件,本质上隐藏延迟。相反,并行性是同时做很多事情以提高速度。

两者都有不同的要求和用例。

并行性用于实现运行时性能和效率,是的,由于其本质,它会为系统(Cpu、RAM 等)增加一些额外的开销。但这是当今多核技术中广泛使用的概念。

关于java - 如果我在多线程服务器程序中运行并行代码会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56805412/

相关文章:

java - 如何在 Maven 项目中包含本地 jar 文件

java - 如何设置包版本

java - 我可以对 subscribeOn 方法和异步任务使用相同的执行器吗

使用 winsock 和 std::thread 的 C++ 多线程服务器

python - Celery + Eventlet pool并没有提升异步web请求的执行速度

python - 并发 psycopg2 postgres 选择查询的空结果

java - java中如何接收文件(servlet/jsp)

java - 在 Java 中等待 ThreadPoolExecutor 完成线程的最佳方法是什么?

java - 不稳定的 StampedLock.unlock(long) 行为?

java - 检查二叉树中的节点是否有子节点?