java - 多线程的情况

标签 java multithreading

是否有任何指南可以了解特定程序是否会从多线程中受益?

在单线程中,CPU 利用率通常较低,如果程序中不相关的部分被分成单独的线程,则在某些情况下 CPU 利用率可能会更高。也许当一个线程正在等待 I/O 时,其他线程可以利用 CPU。但是在程序中需要注意哪些事项来查看它是否会从多线程中受益?

最佳答案

通常,当您可以将任务分解为多个独立的子任务并且您实际上有多个处理器来执行该任务(优化),或者如果您需要保持系统“交互”(即使是阻塞任务,例如,就像从网络读取一样,正在执行,其他线程可以继续关注用户请求)。

另一个原因是模拟并行性(即使你没有像线程一样多的处理器)来同时执行多个“任务”(即使没有实现真正的优化)。这就是操作系统通常所做的事情,它们并行运行多个程序,即使它们必须给它们很少的时间来交替执行。

关于java - 多线程的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651851/

相关文章:

objective-c - NSOperation & 单例 : Correct concurency design

multithreading - 如何使用 Entity Framework 在 SQLite 中设置线程模式?

multithreading - NInject 和线程安全

java - 无法通过 Hibernate 连接到数据库...太令人沮丧了

java - 条件等待线程消耗太多CPU周期

java - 对 ArrayList 起作用的两种方法的同步

linux - 为什么方法 main.replay() 没有在 Java 中执行?但完全相同的代码在 Fedora 中有效,但在 Archlinux 中无效

java - 服务器客户端应用程序的 StreamCorruptedException

java - 您如何在不同的暂存环境中维护 java webapps?

java - 将 Java InputStream 的内容写入 OutputStream 的简单方法