In general, JCA services are not thread safe, and KeyStoreSpi does not impose any thread safety requirements on performers. However, if your keystore is virtually unchanged, and you make sure that its initialized state is visible to all threads, there is no problem. For example, save the KeyStore in a volatile variable or load it from the class initializer (which can be difficult due to exception handling).
source share