是否有任何指南可以了解特定程序是否会从多线程中受益?
在单线程中,CPU 利用率通常较低,如果程序中不相关的部分被分成单独的线程,则在某些情况下 CPU 利用率可能会更高。也许当一个线程正在等待 I/O 时,其他线程可以利用 CPU。但是在程序中需要注意哪些事项来查看它是否会从多线程中受益?
最佳答案
通常,当您可以将任务分解为多个独立的子任务并且您实际上有多个处理器来执行该任务(优化),或者如果您需要保持系统“交互”(即使是阻塞任务,例如,就像从网络读取一样,正在执行,其他线程可以继续关注用户请求)。
另一个原因是模拟并行性(即使你没有像线程一样多的处理器)来同时执行多个“任务”(即使没有实现真正的优化)。这就是操作系统通常所做的事情,它们并行运行多个程序,即使它们必须给它们很少的时间来交替执行。
关于java - 多线程的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651851/