当多个线程要求同时加载同一个类时会发生什么?

问题描述 投票:6回答:1

在多线程环境中,当多个线程同时引用一个类时,JVM最终会多次加载该类吗?

如果没有,同步是如何发生的?

java multithreading concurrency classloader
1个回答
3
投票

该类将被加载一次。见jls 12.4.2

对于每个类或接口C,存在唯一的初始化锁定LC。从C到LC的映射由Java虚拟机实现决定。初始化C的过程如下:

  1. 在C的初始化锁LC上同步。这涉及等到当前线程可以获取LC。

...

© www.soinside.com 2019 - 2024. All rights reserved.