繁体   English   中英

Java中的并发性如何提高在单核处理器上运行的程序的性能?

[英]How concurrency in java improves the performance of program running on single core processor?

最近,我在一本书中读到,并发是用于多处理器编程的基本工具。

比起单核处理器有什么用?

并发是用于多处理器编程的基本工具。

是的,但是它在其他方面也可以提供帮助。 例如,如果cpu并非瓶颈,那么并发还可以提高单个核心系统的吞吐量(例如,因为线程花费了大部分时间来等待来自磁盘或网络的I / O)。

当有多个任务需要同时运行时,并发很有用。 一个非常常见的示例是GUI编程。 您不希望您的UI在程序等待从磁盘或网络加载数据时冻结,因此您有一个仅管理UI元素的线程(在Swing / AWT中称为“事件调度线程”)和后台线程负责沟通或长期运行的计算。 操作系统来回交换它们,以确保在其他任务仍处于活动状态时重绘UI。

能够在运行线程之间切换对于感知单个核心处理器的性能很有用。 在许多系统中,UI的图形部分是由另一个线程而不是由工作线程来更新的。 用户在长时间运行任务时没有任何反馈将令人沮丧。 并发在单核上的另一个有用的应用程序是以低优先级启动长时间运行的任务,而用户可以自由地同时做其他事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM