多核机器有助于多线程的快速处理吗?

kjthegm6  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(318)

我对在一台机器的多个核心中执行多个线程感到困惑。
例如,我有一个方法,建造一座100层的建筑。

synchronized buildingStories(){

}

为了更快地完成构建,我决定使用4个worker(线程)。假设t1何时构建一个floor1,t2何时构建floor2,依此类推。
一旦t1锁定 buildingStories ,t2将无法获得锁并进行构建,直到t1释放它。即使机器是多核的,在共享资源空闲之前,其他线程或工作线程也必须排队,多线程如何提高性能?最后,线程必须等到轮到它运行到核心来处理它。
这是一个非常天真的问题,但如果你能理解我的建议,我将不胜感激。

eanckbw9

eanckbw91#

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

相关问题