首页 > 解决方案 > 多核机器是否有助于使用多线程进行快速处理?

问题描述

我对机器的多个内核中的多个线程执行感到困惑。

例如,我有一个建造 100 层建筑的方法。

synchronized buildingStories(){

}

为了更快地完成构建,我决定使用 4 个工人(线程)。假设 T1 何时建造 floor1,T2 何时建造 floor2,依此类推。

因此,一旦 T1 获得了锁buildingStories,T2 将无法获得锁并进行构建,直到 T1 释放它。即使机器是多核的,其他线程或工作人员也必须排队,直到共享资源空闲,多线程如何提高性能?最后线程必须等到轮到它运行到核心来处理它。

这是一个非常幼稚的问题,但建议您理解。

标签: javamultithreadingmulticore

解决方案


你是对的。如果两个线程锁定同一个对象,则其中一个线程将阻塞,这对性能没有帮助。另一方面,如果两个线程可以完全独立运行,那么性能就会有巨大的提升。


推荐阅读