AWSCredentialsProviderChain.javaでもDefaultAWSCredentialsProviderChainも、ドキュメントではスレッドセーフです。 リンクされた実装(バージョン1.11.124以降)ではスレッドセーフですか?DefaultAWSCredentialsProviderChain(v1.11.124)はスレッドセーフです
もしそうなら、チェーンの基礎となるプロバイダーも同様であると考えることができます(つまり、ProfileCredentialsProviderがスレッドセーフであるかどうか)。
右、右。ありがとう@millems。あなたは "完全に構成する"ことが何を意味するかを明確にすることができますか? Kevin Mullinは、この行の前に 'getCredentials()'がもう一度呼び出されると、https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src /main/java/com/amazonaws/auth/AWSCredentialsProviderChain.java#L121の場合、コードは再びチェーン全体を反復することがあります。 – yegeniy
プロバイダを使用する前に、そのプロバイダの 'set *'メソッドを呼び出すことをお勧めします。 'lastUsedProvider'は、フィールドが揮発性でないため、スレッドがローカルにスレッドの値をキャッシュし、その周りにロックがないため、かなり予測できません。 'lastUsedProvider'はベストエフォート型フィールドなので、チェーン全体が何度も繰り返し処理される可能性があります。これを防止することは比較的非効率的であり、チェーンを複数回通過するコストは過大ではない。 – millems