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

时间:2019-03-17 06:52:18

标签: java multithreading concurrency classloader

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

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

1 个答案:

答案 0 :(得分:3)

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

  

对于每个类或接口C,都有一个唯一的初始化锁   LC。从C到LC的映射由Java自行决定   虚拟机实施。初始化C的过程是   然后如下:

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

...